Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop-减少溢出记录的数量_Hadoop_Hadoop Streaming - Fatal编程技术网

Hadoop-减少溢出记录的数量

Hadoop-减少溢出记录的数量,hadoop,hadoop-streaming,Hadoop,Hadoop Streaming,我有一个Ubuntu虚拟机在独立/伪模式下运行,有4gb内存和4个内核 除以下内容外,所有内容均设置为默认值: io.file.buffer.size=65536 io.sort.factor=50 io.sort.mb=500 mapred.tasktracker.map.tasks.maximum=4 mapred.tasktracker.reduce.tasks.maximum=4 这ofc将不会是一个生产机器,但我摆弄它,以掌握微调 我的问题是,当我运行我的基准Hadoop流作业(在1

我有一个Ubuntu虚拟机在独立/伪模式下运行,有4gb内存和4个内核

除以下内容外,所有内容均设置为默认值:

io.file.buffer.size=65536
io.sort.factor=50
io.sort.mb=500
mapred.tasktracker.map.tasks.maximum=4
mapred.tasktracker.reduce.tasks.maximum=4
这ofc将不会是一个生产机器,但我摆弄它,以掌握微调

我的问题是,当我运行我的基准Hadoop流作业(在1.8gb文本文件上获得不同的记录)时,我得到了大量溢出的记录,而上述调整似乎并没有减少溢出。我还注意到,当我在Ubuntu的系统监视器中监视内存使用情况时,它从未得到充分利用,也从未超过2.2gb

我已经研究了chaging
HADOOP\u HEAP
mapred.map.child.java.opts
mapred.reduce.child.java.opts
,但我不确定如何设置它们,因为默认值似乎足够了

我是否缺少一个允许Hadoop使用剩余ram从而减少溢出记录(希望加快作业)的设置,或者这是正常行为


非常感谢

分配给map/reduce任务的默认内存为200mb。您可以使用-Dmapred.child.java.opts=-Xmx512M增加该值

无论如何,这是一个关于hadoop tunning的非常有趣的材料


希望有帮助

除了增加内存之外,您是否考虑过在映射步骤之后是否可以为任务运行合并器,这将压缩并减少需要保留在内存中或溢出的记录量

不幸的是,当您使用流媒体时,它似乎必须用Java编码,并且不能用您正在使用的任何语言


这些幻灯片帮助了我。解释得很好。请看一看:看起来这个限制在最新版本的Hadoop中已经被取消了。现在的帮助内容为:-组合器可选。要作为组合器运行的命令