我正在尝试运行这样的工作(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>
FirstScript:
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]
此致 的Pawel
答案 0 :(得分:2)
首先回答关于job.properties
的问题 - 它用于参数化工作流程(流程中的变量将替换为job.properties中指定的值)。因此,您可以在job.properties中设置作业跟踪器和namenode,并使用workflow.xml中的变量,或者您可以直接在workflow.xml中设置它。
您确定您的Job Tracker端口是50300
吗?这看起来很可疑有两个原因:通常,作业跟踪器的Web UI可以在http://ip:50030
访问,但这不是您应该用于此配置的端口。对于Hadoop作业配置,作业跟踪器端口通常为8021
,9001
或8012
。
所以看起来您的问题是设置正确的作业跟踪器和名称节点(而不是将其设置在正确的位置)。尝试在mapred-site.xml
和core-site.xml
中检查Hadoop的设置,以获取正确的端口和IP。或者,您可以简单地通过SSH连接到运行Hadoop节点的计算机并运行netstat -plnt
并查找此处提到的端口。
答案 1 :(得分:0)
我看到你在namenode和jobtracker中指定的端口有所不同。只需检查您在mapred-site.xml和core-site.xml中配置的内容,然后输入相应的端口。
也可能是hadoop1主机名没有得到解决。尝试添加服务器的IP地址或将hadoop1放入/ etc / hosts文件中。
您可以定义属性文件,以便可以对工作流进行参数化。
答案 2 :(得分:0)
尝试使用默认的端口9000.否则我们需要查看Hadoop配置文件。