我正在尝试从oozie发起sqoop行动,我自己尝试过,并在论坛上提问。我一直得到同样的错误。
job.properties:
nameNode=hdfs://FQDN:8020
jobTracker=FQDN:8050
queueName=default
user.name=oozie
oozie.use.system.libpath=true
oozie.action.sharelib.for.sqoop=hive,hcatalog,sqoop
oozie.action.sharelib.for.hive = hive,hcatalog,sqoop
oozie.wf.application.path=${nameNode}/user/${user.name}/scheduledimport
start=2016-04-26T00:00Z
end=2016-12-31T00:00Z
workflowAppUri=${nameNode}/user/${user.name}/scheduledimport
我正在从oozie用户那里推出oozie工作。
我的worflow只是一个简单的列表命令:除此之外,我在oozie-site.xml中拥有所有默认配置。
我已检查并共享/ lib / lib_timestamp文件夹存在于/ user / oozie
中<workflow-app name="once-a-day" xmlns="uri:oozie:workflow:0.1">
<start to="sqoopAction"/>
<action name="sqoopAction">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<command>list-tables --driver com.mysql.jdbc.Driver
--connect jdbc:mysql://FQDN/erp --username hive --password hive
</command>
</sqoop>
<ok to="end"/>
<error to="killJob"/>
</action>
<kill name="killJob">
<message>"Killed job due to error: ${wf:errorMessage(wf:lastErrorNode())}"</message>
</kill>
<end name="end" />
</workflow-app>
oozie admin -oozie http://FQDN:11000/oozie/ -shareliblist输出:
[Available ShareLib]
hive
mapreduce-streaming
oozie
sqoop
pig
我还尝试在workflow.xml中添加内联配置
另外,检查过我的oozie-site.xml
<property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>/user/oozie/share/lib</value>
</property>
这是我有依赖的地方。
哪个jar文件有org.apache.oozie.action.hadoop.SqoopMain
?
但我一直收到这个错误:
java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SqoopMain not found
我确保带有jar文件的文件夹具有一组必需的权限和对用户的访问权限。尝试更新share / lib文件夹。确保该文件夹具有与sqoop相关的依赖关系,但它无法正常工作。
答案 0 :(得分:1)
以下可能是此ClassNotFoundException
:
oozie.use.system.libpath
未设为true。在您的情况下,您已经设置了 oozie.use.system.libpath = true
确保,sharelib目录具有sqoop依赖性。
以下属性应在oozie-site.xml中设置(如果未使用默认的sharelib路径,则为
) <property>
<name>oozie.service.WorkflowAppService.system.libpath</name>
<value>/user/oozie/share/lib</value>
</property>
在提交工作流程时,请使用正确的job.properties。
$ oozie job -oozie http://localhost:11000/oozie -config job.properties -run
我也遇到了类似的问题,但设置oozie.use.system.libpath=true
解决了它。
答案 1 :(得分:1)
类apache.oozie.action.hadoop.SqoopMain是mysql-connector-java - * .jar的一部分。您需要下载并添加到Oozie库。