欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Hadoop集群上使用Lzo壓縮

系統 2817 0

轉自: http://www.tech126.com/hadoop-lzo/

自從Hadoop集群搭建以來,我們一直使用的是Gzip進行壓縮

當時,我對gzip壓縮過的文件和原始的log文件分別跑MapReduce測試,最終執行速度基本差不多

而且Hadoop原生支持Gzip解壓,所以,當時就直接采用了Gzip壓縮的方式

關于Lzo壓縮,twitter有一篇文章,介紹的比較詳細,見 這里

Lzo壓縮相比Gzip壓縮,有如下特點:

  1. 壓縮解壓的速度很快
  2. Lzo壓縮是基于Block分塊的,這樣,一個大的文件(在Hadoop上可能會占用多個Block塊),就可以由多個MapReduce并行來進行處理

雖然Lzo的壓縮比沒有Gzip高,不過由于其前2個特性,在Hadoop上使用Lzo還是能整體提升集群的性能的

我測試了12個log文件,總大小為8.4G,以下是Gzip和Lzo壓縮的結果:

  1. Gzip壓縮,耗時480s,Gunzip解壓,耗時180s,壓縮后大小為2.5G
  2. Lzo壓縮,耗時160s,Lzop解壓,耗時110s,壓縮后大小為4G

以下為在Hadoop集群上使用Lzo的步驟:

1. 在集群的所有節點上安裝Lzo庫,可從 這里 下載

cd /opt/ysz/src/lzo-2.04

./configure –enable-shared

make

make install

#編輯/etc/ld.so.conf,加入/usr/local/lib/后,執行/sbin/ldconfig

或者cp /usr/local/lib/liblzo2.* /usr/lib64/

#如果沒有這一步,最終會導致以下錯誤:

lzo.LzoCompressor: java.lang.UnsatisfiedLinkError: Cannot load liblzo2.so.2 (liblzo2.so.2: cannot open shared object file: No such file or directory)!

2. 編譯安裝Hadoop Lzo本地庫以及Jar包,從 這里 下載

?? ?export CFLAGS=-m64

?? ?export CXXFLAGS=-m64

?? ?ant compile-native tar

?? ?#將本地庫以及Jar包拷貝到hadoop對應的目錄下,并分發到各節點上

?? ?cp lib/native/Linux-amd64-64/* /opt/sohuhadoop/hadoop/lib/native/Linux-amd64-64/

?? ?cp hadoop-lzo-0.4.10.jar /opt/sohuhadoop/hadoop/lib/

3. 設置Hadoop,啟用Lzo壓縮

vi core-site.xml

<property> ? ??

<name>io.compression.codecs</name> ? ??

<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>

</property>

<property> ? ??

<name>io.compression.codec.lzo.class</name> ? ??

<value>com.hadoop.compression.lzo.LzoCodec</value>

</property>

?

vi mapred-site.xml

<property>

<name>mapred.compress.map.output</name> ? ??

<value>true</value> ??

</property> ??

<property> ? ??

<name>mapred.map.output.compression.codec</name> ? ? ?

<value>com.hadoop.compression.lzo.LzoCodec</value> ??

</property>

4. 安裝lzop,從 這里 下載

?

下面就是使用lzop壓縮log文件,并上傳到Hadoop上,執行MapReduce操作,測試的Hadoop是由3個節點組成集群

lzop -v 2011041309.log

hadoop fs -put *.lzo /user/pvlog

#給Lzo文件建立Index

hadoop jar /opt/sohuhadoop/hadoop/lib/hadoop-lzo-0.4.10.jar com.hadoop.compression.lzo.LzoIndexer /user/pvlog/

寫一個簡單的MapReduce來測試,需要指定InputForamt為Lzo格式,否則對單個Lzo文件仍不能進行Map的并行處理

job.setInputFormatClass(com.hadoop.mapreduce.LzoTextInputFormat.class);

可以通過下面的代碼來設置Reduce的數目:

job.setNumReduceTasks(8);

最終,12個文件被切分成了36個Map任務來并行處理,執行時間為52s,如下圖:

Hadoop集群上使用Lzo壓縮

我們配置Hadoop默認的Block大小是128M,如果我們想切分成更多的Map任務,可以通過設置其最大的SplitSize來完成:

FileInputFormat.setMaxInputSplitSize(job, 64 *1024 * 1024);

最終,12個文件被切分成了72個Map來處理,但處理時間反而長了,為59s,如下圖:

Hadoop集群上使用Lzo壓縮

而對于Gzip壓縮的文件,即使我們設置了setMaxInputSplitSize,最終的Map數仍然是輸入文件的數目12,執行時間為78s,如下圖:

Hadoop集群上使用Lzo壓縮

從以上的簡單測試可以看出,使用Lzo壓縮,性能確實比Gzip壓縮要好不少

Hadoop集群上使用Lzo壓縮


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧美国产精品久久久久久久 | 奇米 影音先锋 | 欧美在线网站 | 成人国产一区二区三区 | 韩国资源视频一区二区三区 | 欧美中文字幕一区二区 | 操人视频在线观看 | 久久久久无码国产精品一区 | 91久久| 日日干天天摸 | 日韩成人黄色片 | 五月天小说网 | 一级特黄欧美日韩免费视频 | 亚洲一区 | 奇米影视第四色在线 | 精品视频一区二区三区在线播放 | 999成人网| 毛片毛片毛片毛片毛片毛片 | 亚洲精品黄色 | 久操中文 | 日韩视频在线免费观看 | 国产精品国偷自产在线 | 韩国在线精品福利视频在线观看 | 美腿丝袜中文字幕 | 免费看一区二区三区 | 干天天 | 激情综合激情五月 | 波多野结衣中文在线播放 | 久久综合亚洲一区二区三区 | 91视频青娱乐 | 污在线视频 | 暴操美女视频 | 久草免费在线观看 | a级淫片| 春色www在线视频观看 | asian极品呦女爱爱 | 亚洲精品人成网在线播放影院 | 日韩视频在线播放 | 国产精品午夜小视频观看 | 一级片a级片 | 亚洲激情91 |