验证hadoops映射输出实际上是压缩的
我正在hadoop中运行一个具有以下特征的map/reduce作业,让我们看看我是否正确阅读了这篇文章:验证hadoops映射输出实际上是压缩的,hadoop,mapreduce,Hadoop,Mapreduce,我正在hadoop中运行一个具有以下特征的map/reduce作业,让我们看看我是否正确阅读了这篇文章: Counter Map FILE: Number of bytes read 131,229,590,404 FILE: Number of bytes written 274,528,656,294 HDFS: Number of bytes read 45,564,455,186 Map output record
Counter Map
FILE: Number of bytes read 131,229,590,404
FILE: Number of bytes written 274,528,656,294
HDFS: Number of bytes read 45,564,455,186
Map output records 303,345,304
Spilled Records 604,392,672
根据我看到的计数器,它输出了3亿条记录,溢出了6亿条记录,这对我来说意味着对数据进行了两次完整的排序。这意味着45G读取HDFS,然后在第一次扫描时写入/读取45G,在第二次扫描时写入45G
mapred.compress.map.output true
mapred.map.output.compression.codec org.apache.hadoop.io.compress.SnappyCodec
2013-05-13 11:31:32,217 INFO org.apache.hadoop.mapred.Merger: Merging 8 sorted segments
但是,那里的数字对我来说是可疑的,压缩后的数据大约是45克,未压缩的数据大约是130克。我想知道我是否只是读错了这些值,或者我是否真的按照上面描述的顺序写出了未压缩的地图数据。我需要检查源代码,但可能是溢出的输出没有被压缩,只有最终合并的线段被压缩