繁体   English   中英

使用 Hue 通过 Shell 脚本在 oozie 中调度 sqoop 作业

[英]Scheduling a sqoop job in oozie through Shell script using Hue

我可以使用 Hue 在 Oozie 中运行 sqoop 命令。 但是,当我尝试通过将它放在 shell 脚本中来运行相同的 sqoop 命令时,我收到如下错误

Stdoutput 2016-05-20 10:52:13,241 ERROR [main] sqoop.Sqoop (Sqoop.java:runSqoop(181)) - Got exception running Sqoop: 

java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.OracleDriver

我已经包含了 jdbc jar 文件,就像我在直接运行 sqoop 命令时所做的那样。 我不明白为什么它不适用于 shell 脚本。

这是 Hue 生成的工作流程

<workflow-app name="My_Workflow" xmlns="uri:oozie:workflow:0.5">
    <start to="shell-ca31"/>
    <kill name="Kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <action name="shell-ca31">
        <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>default</value>
                </property>
                <property>
                    <name>oozie.use.system.libpath</name>
                    <value>true</value>
                </property>
                <property>
                    <name>oozie.libpath</name>
                    <value>/user/oozie/libext</value>
                </property>
            </configuration>
            <exec>sqoopoozie.sh</exec>
            <file>/user/yxr6907/sqoopoozie.sh#sqoopoozie.sh</file>
            <archive>/user/oozie/libext/ojdbc7.jar#ojdbc7.jar</archive>
              <capture-output/>
        </shell>
        <ok to="End"/>
        <error to="Kill"/>
    </action>
    <end name="End"/>
</workflow-app>

当您使用 shell 操作时,不会将 sqoop 的 jars 导入到类路径中。 我能够通过将 jar 添加到类路径中来解决它。 然后,我导出 HADOOP_CLASSPATH 和 sqoop 工作。

使用以下内容:

  1. 将 jar ojdbc7.jar放入文件
  2. 在 shell 脚本中使用以下命令: export HADOOP_CLASSPATH=${PWD}/ojdbc7.jar

您可以使用以下属性代替步骤 1 将 jar 加载到类路径中:

oozie.use.system.libpath=true
oozie.libpath=/path/to/jars

两种方式都需要导出 HADOOP_CLASSPATH。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM