我有一个Apache Hadoop 1.1.1的单个节点实例,其默认参数值(例如[1]和 [2])在具有大量RAM和非常有限的可用磁盘空间大小的计算机上。然后,我注意到这个Hadoop实例在map任务期间浪费了大量的磁盘空间。为了利用高RAM容量和减少磁盘空间使用,我应该注意哪些配置参数?
答案 0 :(得分:2)
您可以使用几个mapred。*参数来压缩地图输出,这将大大减少存储映射器输出所需的磁盘空间量。有关一些好的指示,请参阅this question。
请注意,不同的压缩编解码器会有不同的问题(即GZip需要比LZO更多的CPU,但您必须自己安装LZO)。 This page对Hadoop中的压缩问题进行了很好的讨论,尽管它有点过时了。
您需要的RAM量取决于您在map-reduce作业中的操作,尽管您可以增加堆大小:
conf/mapred-site.xml mapred.map.child.java.opts
有关详细信息,请参阅cluster setup。
答案 1 :(得分:0)
您可以在hdfs-site.xml中使用dfs.datanode.du.reserved
来指定不使用的磁盘空间量。我不知道hadoop是否能够弥补更高的内存使用量。
但是,如果您运行的是磁盘i / o密集型的mapreduce作业,那么您将遇到问题。我认为任何数量的配置都不会对您有所帮助。