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

问题描述 投票:0回答:2

根据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
,我真的不知道要放什么,我从
dfs.block.size
中的
hdfs-site.xml
参数复制它,并且完全公开,我真的不知道在那里放什么值。

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

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

尽管如此,尽管这些设置的配置方式使得 Hortonworks 文档和其他文档认为足以在“超级模式”下执行作业,但该作业实际上执行在该模式下,如下所示:

enter image description here

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

hadoop mapreduce
2个回答
0
投票

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

或者,直接从马嘴里说:

enter image description here


0
投票

为了完成@smatthewenglish的答案,它还取决于单个文件的拆分数量。就我而言,我有一个文件足够大,可以被视为两个分割,因此超级模式无法工作。所以你基本上需要一个文件和一个分割。

© www.soinside.com 2019 - 2024. All rights reserved.