我需要在workflow.xml和oozie中的job.properties中提供配置吗?

kd3sttzy  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(370)

我正在尝试运行如下所示的作业(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();

作业属性:

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配置?
我很困惑,因为不管我是否设置了这些参数,我都会得到这个错误(来自色调接口的错误):

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

向帕维尔问好

xv8emn3q

xv8emn3q1#

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

zfycwa2u

zfycwa2u2#

我看到您在namenode和jobtracker中指定的端口存在差异。只需检查mapred-site.xml和core-site.xml中配置的内容,并放置相应的端口。
还有可能是hadoop1主机名没有解析。尝试添加服务器的ip地址或将hadoop1放在/etc/hosts文件中。
您可以定义属性文件,以便工作流可以参数化。

1bqhqjot

1bqhqjot3#

首先回答你关于 job.properties -它用于参数化工作流(流中的变量替换为job.properties中指定的值)。因此,您可以在job.properties中设置job tracker和namenode,并使用workflow.xml中的变量,也可以直接在workflow.xml中进行设置。
你确定你的工作追踪者的端口是 50300 ? 这似乎有两个可疑的原因:通常情况下,JobTracker的WebUI在 http://ip:50030 但这不是您应该用于此配置的端口。对于hadoop作业配置,作业跟踪器端口通常是 8021 , 9001 ,或 8012 .
因此,您的问题似乎是如何设置正确的作业跟踪器和名称节点(而不是将其设置在正确的位置)。尝试在中检查hadoop的设置 mapred-site.xml 以及 core-site.xml 正确的端口和IP。或者,您可以简单地ssh到运行hadoop节点的机器并运行 netstat -plnt 寻找这里提到的港口。

相关问题