2012-12-01 6 views
5

私はoozie外径CDHから4.1.1ハイブアクション

でハイブスクリプトを実行すると実行がで失敗します。

Error Code JA018 
Error Message org/apache/hadoop/hive/cli/CliDriver 

Details 
Property Value 
External Id job_201211281608_0112 
External Status FAILED/KILLED 
Data None 
Start time Sat, 01 Dec 2012 03:02:37 
End time  Sat, 01 Dec 2012 03:03:07 
Id [email protected] 
Retries 0 
TrackerUri overlord-datanode1:8021 
Transition kill 

Googling JA018は一つだけを明らかに潜在的なヒント:ワークフローのmap-reduceアクションにJA018が出力されたディレクトリにエラーがあります。

私はHDFSに私のHIV-site.xmlのをコピーしてworkflow.xmlに設定: oozie.hive.defaults /ユーザー/色相/ oozie /ワークスペース/ 君主 -oozie-1 /ハイブ-site.xmlにここで

は完了workflow.xmlです:

<workflow-app name="HiveTest" xmlns="uri:oozie:workflow:0.4"> 
    <start to="ExchangeRateTest"/> 
    <action name="ExchangeRateTest"> 
     <hive xmlns="uri:oozie:hive-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <prepare> 
       <delete path="${nameNode}${jobOutput}"/> 
      </prepare> 
      <configuration> 
       <property> 
        <name>oozie.use.system.libpath</name> 
        <value>true</value> 
       </property> 
       <property> 
        <name>oozie.hive.defaults</name> 
        <value>/user/hue/oozie/workspaces/_overlord_-oozie-1/hive-site.xml</value> 
       </property> 
      </configuration> 
      <script>/user/hue/oozie/workspaces/_overlord_-oozie-1/03_update_exchange_rates_final.hive</script> 
       <param>OUTPUT=${jobOutput}</param> 
     </hive> 
     <ok to="end"/> 
     <error to="kill"/> 
    </action> 
    <kill name="kill"> 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <end name="end"/> 
</workflow-app> 

これが動作するために取得できますか?

+0

実際のエラーについては、生成されたジョブの(job_201211281608_0112)単一マップタスクログを確認する必要があります。ここで暗闇の中で撮影:あなたはOozieのシェアライフを正しくセットアップしましたか? –

答えて

1

クラスorg/apache/hadoop/hive/cli/CliDriverは、ハイブアクションの実行に必要です。これはエラーメッセージから明らかです。このクラスはこのjarファイル内にあります:hive-cli-0.7.1-cdh3u5.jar (私の場合、cloudera版のcdh3u5)。

OozieはShareLibディレクトリのこのjarファイルをチェックします。このディレクトリの場所は通常hive-site.xmlに設定され、プロパティ名はoozie.service.WorkflowAppService.system.libpathであるため、Oozieは簡単にjarファイルを見つける必要があります。

私の場合、hive-site.xmlにはこのプロパティが含まれていなかったので、Oozieはこのjarを探す場所を知らなかったので、java.lang.NoClassDefFoundErrorです。 oozie.libpath=${nameNode}/user/oozie/share/lib

は、次のように私は、 ShareLibディレクトリの場所にoozieを指すように私のjob.propertiesファイルのパラメータを含める必要がありました、これを解決するには。 (クラスタに SharedLibディレクトリが設定されている場所によって異なります)。