Sqoop失败,错误消息[java.lang.ClassNotFoundException:Class org.apache.oozie.action.hadoop.SqoopMain not found]

时间:2016-06-16 16:25:56

标签: hadoop hdfs sqoop oozie

我试图通过创建oozie工作流来使用sqoop将mysql表导入hdfs。

我在oozie sharelib中复制了mysql连接器,即在

/user/{username}/share/lib/lib_20150914123648/sqoop/

我还复制了包含job.properties和workflow.xml文件的sqoop-import文件夹。

我可以通过引用https://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=41424

来执行示例Mapreduce作业

我能够提交作业,但它显示作业是工作是杀错误

 Sqoop failed, error message[java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SqoopMain not found]

这是我的job.properties文件

 nameNode=hdfs://localhost:9000
 jobTracker=localhost:8032
 queueName=default
 examplesRoot=sqoop-import

 oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/app/sqoop

这是我的workflow.xml文件

    

<action name="sqoop-node">
    <sqoop xmlns="uri:oozie:sqoop-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <prepare>
            <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/sqoop"/>
            <mkdir path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data"/>
        </prepare>
        <configuration>
            <property>
                <name>mapred.job.queue.name</name>
                <value>${queueName}</value>
            </property>
        </configuration>
        <command>import --connect  jdbc:mysql://localhost:3306/test --username root --password root --table user --target-dir /user/${wf:user()}/${examplesRoot}/output-data/sqoop -m 1</command>

    </sqoop>
    <ok to="end"/>
    <error to="fail"/>
</action>

<kill name="fail">
    <message>Sqoop failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>

然后我通过发出命令

启动工作
oozie job -oozie http://localhost:11000/oozie -config oozie-import/apps/sqoop/job.properties -run

任何人都可以帮助我解决问题。

1 个答案:

答案 0 :(得分:0)

将sqoop jars添加到sharelib后,不要忘记致电

  

oozie admin -sharelibupdate

通知oozie sharelib已更改。