我正在尝试运行如下所示的作业(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]
向帕维尔问好
3条答案
按热度按时间xv8emn3q1#
尝试使用默认端口9000。否则我们需要查看hadoop配置文件。
zfycwa2u2#
我看到您在namenode和jobtracker中指定的端口存在差异。只需检查mapred-site.xml和core-site.xml中配置的内容,并放置相应的端口。
还有可能是hadoop1主机名没有解析。尝试添加服务器的ip地址或将hadoop1放在/etc/hosts文件中。
您可以定义属性文件,以便工作流可以参数化。
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
寻找这里提到的港口。