2016-12-19 9 views
0

sqoopコマンドを使用してoozieからサンプル・ジョブを実行して、データをハイブにインポートすることができません。 hive-site.xmlをhdfsパスに配置しましたが、hive-site.xmlファイルを選択していないと思います。クラスが例外を見つけられないようになっています。これを修正するには?oozieからsqoopジョブを実行するには?

workflow.xml

<!-- This is a comment --> 
<workflow-app xmlns="uri:oozie:workflow:0.4" name="oozie-wf"> 
    <start to = "sqoop-node1" /> 
    <!--Step 1 --> 
    <action name = "sqoop-node1" > 
    <sqoop xmlns="uri:oozie:sqoop-action:0.2"> 
    <job-tracker></job-tracker> 
    <name-node></name-node> 
    <command> import command </command> 
    </sqoop> 
    <ok to="end"/> 
    <error to="kill_job"/> 
    </action> 
    <kill name = "kill_job"> 
    <message>Job failed</message> 
    </kill> 
    <end name = "end" /> 
</workflow-app> 
nameNode=ip jobTracker=ip queueName=default user.name=oozie oozie.use.system.libpath=true oozie.libpath=/user/hdfs/share/share/lib/sqoop oozie.wf.application.path=workflow path outputDir=/tmp/oozie.txt 

にjava.io.IOException:java.lang.ClassNotFoundExceptionが:org.apache.hadoop.hive.conf.HiveConf

+2

あなたの質問ではなく、コメントのポストコード。編集ボタンをクリックしてください。 – Takarii

答えて

0

あなたのSqoopアクションでは、HCatalogライブラリがHive Metastoreと対話する必要があります。そして、Oozieはそのライブラリをデフォルトで追加しません。を明示的ににする必要があります。

HCatalogをPigから使用することに関するいくつかの文献がありますが、Sqoopからはほとんどありません。とにかくトリックは... Oozie documentationから
同じです:

Oozie共有ライブラリはアクションタイプごとに整理されてい...
Oozie はオーバーライドアクション共有ライブラリJAR にメカニズムを提供します。 ..
複数の共有ライブラリディレクトリ名を指定することができます アクション:例: ブタでHCatLoaderとHCatStorerを使用する場合、oozie.action.sharelib.for.pigpig,hcatalog〜 に設定すると、豚とhcatalogジャー。あなたのケースでは

、あなたは値sqoop,hcatalogで、oozie.action.sharelib.for.sqoopという名前Sqoopアクションで特定<property>を、オーバーライドする必要がある - そしてOozieは、実行時に必要なJARファイルを提供します。

+0

!#/ bin/bash table = $ 1 sqoop job --exec $ {table} – User12345

+0

申し訳ありません、リンクを投稿しました。 'http:// stackoverflow.com/questions/43623544/sqoop-job-shell-script-execute-parallel-in-oozie'を見てください。 – User12345

関連する問題