gpt4 book ai didi

hadoop - 如何将参数传递给 Oozie 中的 mapreduce 作业

转载 作者:可可西里 更新时间:2023-11-01 14:49:28 26 4
gpt4 key购买 nike

我有一个打包为 jar 文件 (mymapreduce.jar) 的 mapreduce 作业。运行时,它需要一些参数,例如hadoop jar mymapreduce.jar StartClass -i 输入 -p 参数 1 -u 参数 2。如何将它写为 Oozie 工作流文件中的一个 Action ?

最佳答案

在job.properties文件中写入你要在oozie工作流中使用的参数如下

 nameNode=hdfs://localhost:9000 
hdfs://abc.xyz.yahoo.com:8020
jobTracker=localhost:9001
queueName=default
examplesRoot=map-reduce
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}
inputDir=/user/input-data
outputDir=/user/map-reduce

您可以在 workflow.xml 中添加配置和定义在 job.properties 中的变量,如下所示。

<workflow-app name='wordcount-wf' xmlns="uri:oozie:workflow:0.2">
<start to='wordcount'/>
<action name='wordcount'>
<map-reduce>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
</prepare>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
<property>
<name>mapred.mapper.class</name>
<value>org.myorg.WordCount.Map</value>
</property>
<property>
<name>mapred.reducer.class</name>
<value>org.myorg.WordCount.Reduce</value>
</property>
<property>
<name>mapred.input.dir</name>
<value>${inputDir}</value>
</property>
<property>
<name>mapred.output.dir</name>
<value>${outputDir}</value>
</property>
</configuration>
</map-reduce>
<ok to='end'/>
<error to='end'/>
</action>
<kill name='kill'>
<value>${wf:errorCode("wordcount")}</value>
</kill/>
<end name='end'/>
</workflow-app>

希望这对您有所帮助。

关于hadoop - 如何将参数传递给 Oozie 中的 mapreduce 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29686551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com