6

私は 4 台のマシン (1 台のすべてのマスター、3 台の「ダム」ワーカー) の CDH4 クラスターで実行される Oozie ワークフローを取得しました。Hive メタストアは mysql を使用してマスター上で実行され (ドライバーが存在します)、oozie サーバーも mysql を使用してマスター上で実行されます。Web インターフェイスを使用して、期待どおりにハイブをインポートしてクエリを実行できますが、oozie ワークフロー内で同じクエリを実行すると失敗します。「IF EXISTS」を追加しても、以下のエラーが発生します。接続情報をプロパティとしてハイブ ジョブに追加しようとしましたが、成功しませんでした。

誰でもヒントを教えてもらえますか?何か見逃しましたか?さらに情報が必要ですか?

これは、ジョブのログの出力です。

  Script [drop.sql] content:
  ------------------------
  DROP TABLE IF EXISTS performance_log;

  ------------------------

  Hive command arguments :
  -f
  drop.sql

  =================================================================

  >>> Invoking Hive command line now >>>

  Intercepting System.exit(10001)

  <<< Invocation of Main class completed <<<

  Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10001]

  Oozie Launcher failed, finishing Hadoop job gracefully

そして、これはエラーメッセージです:

  FAILED: SemanticException [Error 10001]: Table not found performance_log
  Intercepting System.exit(10001)
  Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.HiveMain], exit code [10001]
4

2 に答える 2

0

hive-site.xml を適切に指定することに関する上記の解決策とは別に、同じ問題が発生しました。次のこともお勧めします。

  1. mysql コネクタ jar (mysql をメタストアとして使用している場合) がクラスパスで利用可能かどうかを確認します。
  2. Oozie ハイブ アクションの場合は、ハイブ jar を複数回追加していないかどうかを確認してください。たとえば、すでに oozie 共有 lib に存在し、workflow/lib にもコピーしました
于 2013-12-30T09:39:39.260 に答える