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
或者,直接从马口中说出:
根据 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
或者,直接从马口中说出: