1

スクリプトに sqoop インポート コマンドを記述し、コーディネーター ワークフローとして oozie で実行できますか?

そうするのにうんざりしていて、実行するsqoopの絶対パスを指定しても、sqoopコマンドが見つからないというエラーが見つかりました

script.sh は次のとおりです。

sqoop import --connect 'jdbc:sqlserver://xx.xx.xx.xx' -username=sa -password -table materials --fields-terminated-by '^' -- --schema dbo -target-dir /user/hadoop/CFFC/oozie_materials

ファイルを HDFS に配置し、oozie にそのパスを指定しました。ワークフローは次のとおりです。

<workflow-app xmlns='uri:oozie:workflow:0.3' name='shell-wf'>
<start to='shell1' />
<action name='shell1'>
    <shell xmlns="uri:oozie:shell-action:0.1">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
              <name>mapred.job.queue.name</name>
              <value>${queueName}</value>
            </property>
        </configuration>
        <exec>script.sh</exec>
        <file>script.sh#script.sh</file>
    </shell>
    <ok to="end" />
    <error to="fail" />
</action>
<kill name="fail">
    <message>Script failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name='end' />

oozie は、mapreduce ログに sqoop コマンドが見つからないというエラーを返します。

それは良い習慣ですか?

ありがとう

4

2 に答える 2