如何从oozie执行sqoop工作?

时间:2016-12-19 11:01:53

标签: hadoop oozie

我无法使用sqoop命令从oozie执行示例作业以将数据导入配置单元。我已将hive-site.xml放在hdfs路径中,但我认为它不会选择hive-site.xml文件。我上课没找到异常。如何解决这个问题?

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

1 个答案:

答案 0 :(得分:0)

我猜您的Sqoop操作需要 HCatalog库与Hive Metastore进行交互。 Oozie默认不添加该库,您必须明确

请注意,有一些关于使用Pig的HCatalog的文献,但很少来自Sqoop。无论如何,诀窍是一样的......
来自Oozie documentation

  

Oozie共享库按行动类型组织...
Oozie   提供了一种机制来 覆盖 动作共享库JAR   ...
可以指定多个共享库目录名   对于一个动作...例如:当使用HCatLoader和HCatStorer时   猪,oozie.action.sharelib.for.pig可以设置为pig,hcatalog   包括两个猪和hcatalog罐子。

在您的情况下,您需要覆盖名为<property>的Sqoop操作中具有值oozie.action.sharelib.for.sqoop的特定sqoop,hcatalog - 然后Oozie将在运行时提供所需的JAR