Uber 模式配置设置已对齐,但作业未在 uber 模式下执行

Uber mode configuration settings aligned but jobs do not execute in uber mode

根据 Hortonworks 的文档,在“uber 模式”下执行 Hadoop 作业的方法是像这样配置 maprep-site.xml 设置:

<configuration>
  <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
  </property>
  <property>
     <name>mapreduce.job.ubertask.enable</name>
     <value>true</value>
  </property>
  <property>
     <name>mapreduce.job.ubertask.maxmaps</name>
     <value>1</value>
  </property>
  <property>
     <name>mapreduce.job.ubertask.maxreduces</name>
     <value>1</value>
  </property>
  <property>
     <name>mapreduce.job.ubertask.maxbytes</name>
     <value>134217728</value>
  </property>
</configuration>

对于mapreduce.job.ubertask.maxbytes,我真的不知道该放什么,我从hdfs-site.xml中的dfs.block.size参数复制了它并完全公开我真的不知道什么值放在那里。

<property> 
    <name>dfs.block.size</name> 
    <value>134217728</value> 
    <description>Block size</description> 
</property>

最初,块大小是根据我的预感分配的,我的工作失败的原因之一是输入数据——它需要是原子的(从某种意义上说,它不能被分解并输入映射器零散地)- 在 HDFS 中被拆分。

因此,尽管事实上这些设置的配置方式使得 Hortonworks 文档和其他人相信足以执行 "uber mode" 中的作业,但作业确实 not 事实上在该模式下执行,如下所示:

我配置的设置是否有问题导致我的作业无法在超级模式下执行?

OP 中的那些配置设置没问题 - uber mode 的问题是你只能有一个输入文件,而不是像以前那样有多个。看这里:

17/10/12 20:42:42 INFO input.FileInputFormat: Total input files to process : 1
17/10/12 20:42:43 INFO mapreduce.JobSubmitter: number of splits:1
17/10/12 20:42:43 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1507833515636_0005
17/10/12 20:42:44 INFO impl.YarnClientImpl: Submitted application application_1507833515636_0005
17/10/12 20:42:44 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1507833515636_0005/
17/10/12 20:42:44 INFO mapreduce.Job: Running job: job_1507833515636_0005
17/10/12 20:42:49 INFO mapreduce.Job: Job job_1507833515636_0005 running in uber mode : true

或者,直接从马口中说出: