运行Oozie工作

时间:2015-11-06 12:25:51

标签: hadoop mapreduce yarn oozie

我正在尝试配置Oozie来处理我的hadoop-2.7.1群集。一切似乎都很好,YARN,Hue,MapReduce和Spark。通过yarn jar...命令发送的作业正确完成,但是通过CLI oozie job ... -run或Hue发送一些oozie作业,作业停留在33%,节点日志显示:

2015-11-06 06:08:56,121 INFO [main] org.apache.hadoop.yarn.client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:18030
2015-11-06 06:08:57,165 INFO [main] org.apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:18030. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
...

我在配置中的任何地方都没有使用18030端口,可能我应该将其主机名从localhost更改为网络主机名。但是我在哪里配置它?我试图改变yarn.resourcemanager.scheduler.address,但事实并非如此。

修改 我使用oozie job -config examples/apps/shell/job.properties -run运行job.properties,其中包含:

nameNode=hdfs://master:8020
jobTracker=master:8032
queueName=default
examplesRoot=examples
oozie.libpath=/data/shared/hadoop-2.7.1/etc/hadoop

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/shell

1 个答案:

答案 0 :(得分:1)

尝试联系资源管理器时发生错误。

上面提到的日志行正在RMProxy.java中打印:

LOG.info("Connecting to ResourceManager at " + rmAddress);

当您使用Oozie和MRv1时,在" job.properties"文件, jobTracker 的值设置为作业跟踪器的地址:

  

jobTracker = {JobTracker Host}:{JobTracker Port}

但是,当您将Oozie作业迁移到MRv2时,您需要更改" job.properties",使 jobTracker 值指向资源管理器地址:

  

jobTracker = {RM Host}:{RM Port}

请参阅此处的链接:https://support.pivotal.io/hc/en-us/articles/203355837-How-to-run-a-MapReduce-jar-using-Oozie-workflow

jobTracker = Variable to define the resource manager address in case of Yarn implementation. Format: <resourcemanager_hostname>:<port>

修改 我浏览了Hadoop源代码。港口&#34; 18030&#34;正在使用的是&#34; SLS&#34; (纱线调度程序负载模拟器)。

SLS有一个yarn-site.xml文件(位于:\ hadoop-tools \ hadoop-sls \ src \ main \ sample-conf \ yarn-site.xml),具有以下配置:

  <property>
    <description>The address of the scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>localhost:18030</value>
  </property>

根据您的描述,似乎正在使用的yarn-site.xml与SLS使用的类似。