关于mapreduce:高内存机器上的Hadoop单节点配置

Hadoop single node configuration on the high memory machine

我在具有大量RAM和非常有限的可用磁盘空间的机器上有一个具有默认参数值(请参阅[1]和[2])的Apache Hadoop 1.1.1的单节点实例。然后,我注意到该Hadoop实例在执行映射任务时浪费了大量磁盘空间。为了利用高RAM容量并减少磁盘空间使用,我应注意哪些配置参数?


您可以使用几个mapred。*参数来压缩地图输出,这将大大减少存储映射器输出所需的磁盘空间。请参阅此问题以获取一些好的指导。

请注意,不同的压缩编解码器会有不同的问题(例如,GZip比LZO需要更多的CPU,但您必须自己安装LZO)。尽管有些陈旧,但是该页面对Hadoop中的压缩问题进行了很好的讨论。

所需的RAM量取决于您在map-reduce作业中正在执行的操作,尽管您可以在以下位置增加堆大小:

1
conf/mapred-site.xml mapred.map.child.java.opts

有关详细信息,请参阅群集设置。


您可以在hdfs-site.xml中使用dfs.datanode.du.reserved指定不使用的磁盘空间量。我不知道hadoop是否能够补偿更高的内存使用量。

但是,如果您运行磁盘I / O密集型的mapreduce作业,则会遇到问题。我认为任何数量的配置都不会对您有帮助。