シャッフルステージからの大量のデータマップの出力段は、に送られる減らす位相、このプロセスは、ネットワークの多数含み得るIOを。
出力データが大きい場合には、使用のHadoopデータ圧縮により設けられた圧縮機構は、圧縮モードを特定することができます。ネットワーク帯域幅の消費とストレージを削減。
することができますマップの出力を圧縮する(マップするために出力を減らすことができ、プロセス入力をシャッフルネットワーク中に転送されるデータの量を)
することができます減らす圧縮生成される出力を(最終的に保存するためのHDFS主に占領減らすために、データをHDFSのストレージ)
1.1。Hadoopの圧縮アルゴリズムをサポート
使用のHadoop checknativeを表示するHadoopの圧縮アルゴリズムの様々ながある場合は、サポートOpenSSLはある偽の、その行は依存関係でインストールされています。
Hadoopのサポートされている圧縮アルゴリズム
圧縮フォーマット |
ツール |
アルゴリズム |
ファイル名の拡張子 |
セグメンテーションかどうか |
DEFLATE |
ノー |
DEFLATE |
.deflate |
ノー |
Gzipで |
GZIP |
DEFLATE |
.gzを |
ノー |
BZIP2 |
BZIP2 |
BZIP2 |
BZ2 |
それはあります |
LZO- |
lzopの |
LZO- |
.lzo |
ノー |
LZ4 |
ノー |
LZ4 |
.lz4 |
ノー |
スナッピー |
ノー |
スナッピー |
.snappy |
ノー |
使用して、さまざまな圧縮アルゴリズムに対応するJavaクラスを
圧縮フォーマット |
対応を使用するJava クラス |
DEFLATE |
org.apache.hadoop.io.compress.DeFaultCodec |
GZIP |
org.apache.hadoop.io.compress.GZipCodec |
BZIP2 |
org.apache.hadoop.io.compress.BZip2Codec |
LZO- |
com.hadoop.compression.lzo.LzopCodec |
LZ4 |
org.apache.hadoop.io.compress.Lz4Codec |
スナッピー |
org.apache.hadoop.io.compress.SnappyCodec |
モード:圧縮コードセット
設定し、マップの圧縮段階
コンフィギュレーション設定=新しいConfiguration(); configuration.set( "mapreduce.map.output.compress"、 "真"); configuration.set( "mapreduce.map.output.compress.codec"、 "org.apache.hadoop.io.compress.SnappyCodec"); |
設定減らす段圧縮を
configuration.set( "mapreduce.output.fileoutputformat.compress"、 "真"); configuration.set( "mapreduce.output.fileoutputformat.compress.type"、 "RECORD"); configuration.set( "mapreduce.output.fileoutputformat.compress.codec"、 "org.apache.hadoop.io.compress.SnappyCodec"); |
第二の方法:グローバル設定のMapReduce 圧縮を
私たちは、修正することができmapred-のsite.xmlのすべてのように、クラスタを再起動し、設定ファイルをのMapReduce圧縮タスク。
マップデータが圧縮された出力を
<プロパティ> <名前> mapreduce.map.output.compress </名前> <値>真</ value>の </プロパティ> <プロパティ> <名前> mapreduce.map.output.compress.codec </名前> <値> org.apache.hadoop.io.compress.SnappyCodec </ value>の </プロパティ> |
削減圧縮された出力データを
<プロパティ> <名前> mapreduce.output.fileoutputformat.compress </名前> <値>真</ value>の </プロパティ> <property><name>mapreduce.output.fileoutputformat.compress.type</name> <value>RECORD</value> </property> <property><name>mapreduce.output.fileoutputformat.compress.codec</name> <value>org.apache.hadoop.io.compress.SnappyCodec</value> </property> |
所有节点都要修改mapred-site.xml,修改完成之后记得重启集群