【问题标题】:Do I need to provide configuration in workflow.xml and job.properties in oozie?我需要在oozie 中的workflow.xml 和job.properties 中提供配置吗?
【发布时间】:2014-02-11 08:42:27
【问题描述】:

我正在尝试运行如下所示的作业 (workflow.xml)

<workflow-app name="FirstWorkFlow" xmlns="uri:oozie:workflow:0.2">
    <start to="FirstJob"/> 
    <action name="FirstJob">
        <pig>
            <job-tracker>hadoop1:50300</job-tracker>
            <name-node>hdfs://hadoop1:8020</name-node>
            <script>lib/FirstScript.pig</script>
        </pig>
        <ok to="end"/>
        <error to="kill"/>
    </action>
    <kill name="kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end" />    
</workflow-app>

第一脚本:

dual = LOAD 'default.dual' USING org.apache.hcatalog.pig.HCatLoader();
store dual into '/user/oozie/dummy_file.txt' using PigStorage();

job.properties:

nameNode=hdfs://hadoop1:8020
jobTracker=hadoop1:50300
oozie.wf.application.path=/user/oozie/FirstScript
oozie.use.system.libpath=true

我的问题是:我需要在 job.properies 和 workflow.xml 中都提供 nameNode 和 jobTracker 配置吗?

我很困惑,因为无论我是否设置了这些参数,我都会收到这个错误(来自hue界面的错误):

E0902: Exception occured: [Call to localhost/127.0.0.1:8020 failed on connection exception: java.net.ConnectException: Connection refused]

问候 帕维尔

【问题讨论】:

  • 尝试将 job.properties 更改为:oozie.wf.application.path=hdfs://hadoop1:8020/user/oozie/FirstScript
  • 默认情况下,大部分 Jobtracker 在 8021 上运行。同时尝试将您尝试的 jobtracker URL 放在浏览器中以查看响应。例如:http://hadoop1:50030 主机名最好是hostname -f 输出

标签: hadoop apache-pig oozie


【解决方案1】:

首先回答您关于job.properties 的问题 - 它用于对工作流程进行参数化(流程中的变量被替换为job.properties 中指定的值)。所以你可以在job.properties中设置job tracker和namenode,并使用workflow.xml中的变量,也可以直接在workflow.xml中设置。

您确定您的 Job Tracker 的端口是 50300?这似乎有两个原因:通常,可以通过 http://ip:50030 访问作业跟踪器的 Web UI,但这不是您应该用于此配置的端口。对于 Hadoop 作业配置,作业跟踪器端口通常为 802190018012

看来您的问题在于设置 正确 作业跟踪器和名称节点(而不是将其设置在正确的位置)。尝试在mapred-site.xmlcore-site.xml 中检查您的Hadoop 设置以获取正确的端口和IP。或者,您可以简单地通过 SSH 连接到运行 Hadoop 节点的机器并运行 netstat -plnt 并查找此处提到的端口。

【讨论】:

    【解决方案2】:

    我发现您在 namenode 和 jobtracker 中指定的端口有所不同。只需检查您在 mapred-site.xml 和 core-site.xml 中配置的内容并放置适当的端口即可。

    还有可能是 hadoop1 主机名没有得到解析。尝试添加服务器的 IP 地址或将 hadoop1 放在 /etc/hosts 文件中。

    您定义属性文件,以便可以对工作流进行参数化。

    【讨论】:

      【解决方案3】:

      尝试使用默认端口 9000。否则我们需要查看 Hadoop 配置文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-06
        • 2017-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多