如果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>
答案 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如何使用此配置。