JobConf大小超出

时间:2013-06-12 22:10:26

标签: hadoop mapreduce

我有一个使用大量输入路径的map reduce作业。因此,我在开始工作时遇到了这个异常:

超出最大jobconf大小:6154861限制:5242880

我意识到max jobconf大小由系统属性控制:

mapred.user.jobconf.limit,默认为5 MB。

除了增加此限制之外,还有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

除非你准备好改变源本身,否则我不这么认为。根据JobTracker的来源,如果未由用户明确指定,则这是允许的最大值。

/** the maximum allowed size of the jobconf **/
long MAX_JOBCONF_SIZE = 5*1024*1024L;

/** the config key for max user jobconf size **/
public static final String MAX_USER_JOBCONF_SIZE_KEY = "mapred.user.jobconf.limit";

如果您未通过mapred.user.jobconf.limit指定任何值,则会使用5*1024*1024L

MAX_JOBCONF_SIZE = conf.getLong(MAX_USER_JOBCONF_SIZE_KEY, MAX_JOBCONF_SIZE);

答案 1 :(得分:1)

或者,如果可能,您可以尝试使用DistributedCache

您可以将它们放入文件并将该文件添加到JobConf,而不是将这么多名称值对加载到DistributedCache中。 这取决于您的应用程序在JobConf中存储的内容。