超出jobconf大小

pn9klfpd  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(330)

我有一个map reduce作业,它使用大量的输入路径。因此,我在启动作业时遇到此异常:
超出最大jobconf大小:6154861限制:5242880
我意识到最大jobconf大小由系统属性控制:
mapred.user.jobconf.limit,默认为5 mb。
除了提高这一限制,还有什么办法可以绕过这个问题吗?

vzgqcmou

vzgqcmou1#

或者,您可以尝试使用 DistributedCache 如果可能的话。
而不是将这么多的名称-值对加载到 JobConf ,您可以将它们放入一个文件中并将该文件添加到 DistributedCache . 这取决于应用程序存储的内容 JobConf .

ss2ws0br

ss2ws0br2#

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

/**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);

相关问题