我无法使用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
答案 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