我需要在oozie 中的workflow.xml 和job.properties 中提供配置吗?
Posted
技术标签:
【中文标题】我需要在oozie 中的workflow.xml 和job.properties 中提供配置吗?【英文标题】:Do I need to provide configuration in workflow.xml and job.properties in oozie? 【发布时间】: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
输出
【参考方案1】:
首先回答您关于job.properties
的问题 - 它用于对工作流程进行参数化(流程中的变量被替换为job.properties 中指定的值)。所以你可以在job.properties中设置job tracker和namenode,并使用workflow.xml中的变量,也可以直接在workflow.xml中设置。
您确定您的 Job Tracker 的端口是 50300
?这似乎有两个原因:通常,可以通过 http://ip:50030
访问作业跟踪器的 Web UI,但这不是您应该用于此配置的端口。对于 Hadoop 作业配置,作业跟踪器端口通常为 8021
、9001
或 8012
。
看来您的问题在于设置 正确 作业跟踪器和名称节点(而不是将其设置在正确的位置)。尝试在mapred-site.xml
和core-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 配置文件。
【讨论】:
以上是关于我需要在oozie 中的workflow.xml 和job.properties 中提供配置吗?的主要内容,如果未能解决你的问题,请参考以下文章
OOZIE HIVE 操作 - workflow.xml 属性不会传递给子任务
oozie 作业失败并出现错误 JA009:错误的 conf 文件