Hive架構層面最佳化之七壓縮

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   

常見的壓縮有:對中間結果壓縮、對輸出結果壓縮

 

壓縮對比:

演算法 壓縮前/壓縮後 壓縮速度 解壓速度
GZIP 13.4% 21MB/s 118 MB/s
LZO 20.5% 135 MB/s 410 MB/s
Snappy 22.2% 172 MB/s 409 MB/s

 

 

 

 

Snappy介紹:

Snappy 網站:http://code.google.com/p/snappy/

Snappy的前身是Zippy。雖然只是一個資料壓縮庫,它卻被Google用於許多內部項目程,其中就包括BigTable,MapReduce和RPC。Google宣稱它在這個庫本身及其演算法做了資料處理速度上的最佳化,作為代價,並沒有考慮輸出大小以及和其他類似工具的相容性問題。Snappy特地為64位x86處理器做了最佳化,在單個Intel Core i7處理器核心上能夠達到至少每秒250MB的壓縮速率和每秒500MB的解壓速率。

如果允許損失一些壓縮率的話,那麼可以達到更高的壓縮速度,雖然產生的壓縮檔可能會比其他庫的要大上20%至100%,但是,相比其他的壓縮庫,Snappy卻能夠在特定的壓縮率下擁有驚人的壓縮速度,“壓縮普通文字檔的速度是其他庫的1.5-1.7倍,HTML能達到2-4倍,但是對於JPEG、PNG以及其他的已壓縮的資料,壓縮速度不會有明顯改善”。

 

壓縮技術整合:

snappy-java-1.0.4.1.jar整合在:hadoop-2.0.0-cdh4.5.0\share\hadoop\各個子項目\lib下

core-site.xml

配置需要使用的壓縮類,多個使用逗號隔開;此處多配置了幾個實作類別。

<property>    <name>io.compression.codecs</name>    <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Cod        ec,org.apache.hadoop.io.compress.DeflateCodec,        org.apache.hadoop.io.compress.SnappyCodec</value></property>

 

mapred-site.xml

<!--reduce階段都有效--><property>    <name>mapred.output.compression.codec</name>    <value>org.apache.hadoop.io.compress.DefaultCodec</value></property><!--map階段都有效--><property>    <name>mapred.map.output.compression.codec</name>    <value>org.apache.hadoop.io.compress.SnappyCodec</value></property><!--map階段是否壓縮--><property>    <name>mapred.compress.map.output</name>    <value>true</value></property><!--reduce階段是否壓縮--><property>    <name>mapred.output.compress</name>    <value>false</value></property><property>    <name>mapred.output.compression.type</name>    <value>BLOCK</value></property>

為什麼有時只選擇壓縮map輸出?

提高map到reduce之間傳輸資料的效能;

此種配置下,存在reduce上的資料就沒有壓縮的,即存放在HDFS上的資料是沒有壓縮的;

正常情況下:reduce也是需要壓縮的

如上的設定檔:既對hadoop有效,也對hive有效。

在生產環境中建議map和reduce端都進行壓縮

 

如何設定只針對hive有效(針對單個視窗有效或者是配置到hive-site.xml中整體有效):

SET hive.exec.compress.output=true;SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;SET mapred.output.compression.type=BLOCK;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.