0

mapred.user.jobconf.limit当设置为 5MB时,如何在作业跟踪器中进行 66MB 作业配置?

$ ls -lh /mapred/jt/jobTracker/job_201309061800_0037.xml
-rwxr-xr-x 1 mapred mapred 66M Sep  6 22:21 /mapred/jt/jobTracker/job_201309061800_0037.xml

$ cat /mapred/jt/jobTracker/job_201309061800_0037.xml | grep mapred.user.jobconf.limit
<property><name>mapred.user.jobconf.limit</name><value>5242880</value><source>mapred-default.xml</source></property>
4

1 回答 1

1

您只显示了从客户端发送的配置 (job_201309061800_0037.xml)。此配置仅适用于当前 Job,对 JobTracker 无效。您需要检查mapred-default.xml您的 JobTracker。

JobTracker 将mapred.user.jobconf.limit在初始化时读取。之后,内存中的这个值(MAX_JOBCONF_SIZE在 JobTacker 中)不会改变。您可以在此处查看代码:http: //www.grepcode.com/file/repository.cloudera.com/content/repositories/releases/org.apache.hadoop/hadoop-core/0.20.2-cdh3u1/org/apache /hadoop/mapred/JobTracker.java#158

我承认 hadoop 没有提供某种机制来指示哪些配置可以由 Job 设置,哪些不能由 Job 设置。现在我的解决方案是在 hadoop 源代码中搜索配置并找出 hadoop 如何使用此配置。

于 2013-09-11T01:16:00.440 回答