如果jobconf.limit设置为5MB,我如何在作业跟踪器中拥有66MB的作业配置?

时间:2013-09-08 20:42:57

标签: hadoop mapreduce

如果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>

1 个答案:

答案 0 :(得分:1)

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

JobTracker会在初始化时阅读mapred.user.jobconf.limit。之后,内存中的此值(JobTacker中的MAX_JOBCONF_SIZE)不会更改。您可以在此处查看代码: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如何使用此配置。