为什么Yarn中的压缩会使工作慢几倍?

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

当我在yarn(2.4.0)中使用压缩(snappy)运行作业时,对作业完成时间有很大的影响。例如,我做了以下实验。作业:invertedindex群集:10个从属虚拟机(4个cpu 8gb ram)。
5gb invertedindex无压缩作业完成时间(snappy):226s,压缩作业完成时间:1600s
50gb invertedindex无压缩作业完成时间(snappy):2000s,有压缩作业完成时间:14000s
我在mapred-site.xml中的配置如下:

<name>mapreduce.map.output.compress</name>  
  <value>true</value>
</property>
<property>
  <name>mapred.map.output.compress.codec</name>  
  <value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

我读过很多资料,说压缩应该提高性能,但在这里,它已经减缓了近7倍的工作。我做错什么了?

oxf4rvwz

oxf4rvwz1#

它可能是的默认设置 mapreduce.output.fileoutputformat.compress.type 设置为 RECORD .
基本上,它试图压缩每一条记录,如果你的记录是小的文本片段(例如,在你的倒排索引中的一个标记),它最终可能会比以前更大。
您可以尝试将此属性设置为 BLOCK ,它应该在块级别进行压缩,从而在冗余文本数据上提供更好的压缩。

yrdbyhpb

yrdbyhpb2#

我通过以下步骤修复了此压缩问题:
1、修复“无法加载本机hadoop库”hadoop“无法为您的平台加载本机hadoop库”警告问题
2、安装snappyhttp://code.google.com/p/snappy/
3,将/usr/local/lib/libsnappy*复制到$hadoop\u home/lib/native/
4、在hadoop-env.sh和mapred-site.xml中配置ld\库\路径

<property>  
    <name>mapred.child.env</name>  
    <value>LD_LIBRARY_PATH=$HADOOP_HOME/lib/native</value>  
</property

相关问题