狠狠撸
Search
Submit Search
Hadoop splittable-lzo-compression
?
2 likes
?
1,942 views
Daiki Sato
Hadoop splittable-lzo-compression
Read less
Read more
1 of 28
More Related Content
Hadoop splittable-lzo-compression
1.
Hadoop splittable-lzo-compression の設定と評価
2.
自己紹介????佐藤 大樹(dandaso) 2003~2006?(株)ドワンゴ 2006~2008?ウノウ(株) 2009~????(株)スペイジーズ ?
3.
自己紹介????佐藤 大樹(dandaso) 2003~2006?(株)ドワンゴ 2006~2008?ウノウ(株) 2009~????(株)スペイジーズ ? スペイシーズは人財を募集しております
??確率分布、統計、検定などの基礎知識 ??回帰分析などの統計分析手法の知識 ??パターンマイニング、分類器、 ??クラスタリングなどの機械学習の知識
4.
大規模データ向けのバッチ分散処理システム File
File File File Namenode HDFS DataNode JobTrcker MAP MAP MAP MAP TaskTracker Reduce Reduce Out Out
5.
WordCount INPUT
MAP SHUFFLE REDUCE CAT DOG CAT 1 CAT 1 ELEPHANT DOG 1 CAT 1 CAT 4 ELEPHANT 1 CAT 1 CAT 1 ELEPHANT 1 CAT DOG CAT 1 RABIT RABIT 1 ELEPHANT 1 DOG 1 DOG 1 RABIT 2 CAT 1 CAT CAT CAT 1 RABIT 1 RABIT RABIT 1 RABIT 1
6.
Hadoopを利用する利点 ?フレームワーク(MapReduce)に沿って ?プログラムを書ばバッチ処理を分散処理を ?してくれる ?ノードを増やせばスケールする 欠点 ?起動のオーバーヘッドが大きため、 ?リアルタイム性を求める処理には向かない
7.
贬补诲辞辞辫で扱える圧缩形式
複数 スプリッ 圧縮形式 ツール アルゴリズム 拡張子 ファイル タブル gzip gzip de?ate .gz 不可 不可 ファイル ZIP zip de?ate .zip 可能 単位 bzip bzip2 bzip2 .bz2 不可 可能 LZO lzop LZO .lzo 不可 不可
8.
贬补诲辞辞辫で扱える圧缩形式
複数 スプリッ 圧縮形式 ツール アルゴリズム 拡張子 ファイル タブル gzip gzip de?ate .gz 不可 不可 ファイル ZIP zip .zip de?ate 可能 単位 可能に! bzip bzip2 bzip2 .bz2 不可 可能 LZO lzop LZO .lzo 不可 不可
9.
2.1骋の础辫补肠丑别のアクセスログ
圧縮時間 圧縮速度 サイズ 解凍時間 解凍速度 圧縮形式 サイズ比 (sec) (M/sec) (MByte) (sec) (M/sec) gzip 56 38.4 291 15 143 1/7 bzip 825 2.6 192 78 27.5 1/11 1/4. lzo 12 179 475 5.6 379 5
10.
lzopの圧縮レベルについて ?2.1Gのログを圧縮
圧縮時間 サイズ 解凍時間 圧縮レベル (sec) (M byte) (sec) 1 14.1 532 8.6 3 14.3 528 8.5 6 104 519 8.5 9 186 517 8.6
11.
圧縮してMapReduceを行う利点と欠点 利点 ??ディスク容量の節約 ??ネットワーク帯域の節約 欠点 ??CPUを使う ??ログファイルをすぐに閲覧できない
12.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
13.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
14.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
15.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
16.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
17.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
18.
贬顿贵厂上ファイルをコピー
secondary namenode namenode tasktracker1 2 3 4
19.
Hadoopの設定 (1) Hadoopをインストール
$ sudo curl http://archive.cloudera.com/redhat/ cdh/cloudera-cdh2.repo > /etc/yum.repos.d/ cloudera-cdh2.repo $ yum -y update yum $ sudo yum -y install hadoop-0.20-conf-pseudo Hadoopを設定 vi /etc/hadoop-0.20/masters vi /etc/hadoop-0.20/slaves vi /etc/hadoop-0.20/core-site.xml vi /etc/hadoop-0.20/hdfs-site.xml vi /etc/hadoop-0.20/mapred-site.xml
20.
Hadoopの設定 (2) /etc/hadoop-0.20/core-site.xml
?io.compression.codec.lzo.class ?com.hadoop.compression.lzo.LzoCodec ?io.compression.codecs ?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 /etc/hadoop-0.20/core-mapred.xml ?mapred.map.output.compression.codec ?com.hadoop.compression.lzo.LzoCodec
21.
Hadoopの設定 (3) Hadoopを設定(LZO部分) $yum
install -y lzo-devel lzop $git clone git://github.com/kevinweil/hadoop-lzo.git $ant compile-native tar $cp build/hadoop-lzo-0.4.4.jar /usr/lib/hadoop/lib/ $mkdir -p /usr/lib/hadoop/lib/native/Linux-amd64-64 $tar -cBf - -C build/hadoop-lzo-0.4.4/lib/native . ? sudo tar -xBvf - -C /usr/lib/hadoop/lib/native/Linux- amd64-64
22.
Hadoopの設定 (4)
ソースコード import com.hadoop.mapreduce.LzoTextInputFormat public class Test extends Con?gured implements Tool { ... public int run(String[] args) throws Exception { .... // input formatにLzoを利用 conf.setInputFormat.(LzoTextInputFormat.class) // 出力データにLzoを利用 FileOutputFormat.setOutputCompressorClass (conf,com.hadoop.compression.lzo.LzopCodec.class); FileOutputFormat.setCompressOutput(conf, true); }
23.
テストと評価 (1) テスト環境 TaskTrackerの環境 CentOS
5.4 Cloudera CDH2 XeonL5520 x1(8 thread) Memory 16GByte ?を4台?で 2GByteのログを4つCount mapred.tasktracker.map.tasks.maximum => 8
24.
テストと評価 (2) lzo
インデックスの作成 hadoop dfs -ls /user/hadoop/test/ 2010-09-28 15:03 /user/hadoop/test/log1.lzo 2010-09-28 15:06 /user/hadoop/test/log2.lzo 2010-09-28 15:08 /user/hadoop/test/log3.lzo 2010-09-28 15:10 /user/hadoop/test/log4.lzo hadoop jar /usr/lib/hadoop/lib/hadoop-lzo-0.4.4.jar com.hadoop.compression.lzo.LzoIndexer test/ MapReduceでインデックスを付ける場合には hadoop jar /usr/lib/hadoop/lib/hadoop-lzo-0.4.4.jar com.hadoop.compression.lzo.DistributedLzoIndexer test/
25.
テストと評価 (3) lzo
インデックスの作成 hadoop dfs -ls /user/hadoop/test/ 2010-09-28 15:03 /user/hadoop/test/log1.lzo 2010-09-28 15:30 /user/hadoop/test/log1.lzo.index? ?2010-09-28 15:06 /user/hadoop/test/log2.lzo ?2010-09-28 15:30 /user/hadoop/test/log2.lzo.index 2010-09-28 15:08 /user/hadoop/test/log3.lzo 2010-09-28 15:30 /user/hadoop/test/log3.lzo.index 2010-09-28 15:10 /user/hadoop/test/log4.lzo 2010-09-28 15:30 /user/hadoop/test/log4.lzo.index ログ集計を実行 hadoop dfs jar logcount.jar jar logcount -m 24 -r 8 test/ testoutput/
26.
テストと評価 (4)
入力ファイル MapReduce MapTaskの数 サイズ 実行時間 圧縮なし 127 8G 2:25 gzip 4 1.2G 6:29 bzip 24 0.87G 2:09 lzo 28 1.7G 2:11 *Map input records はすべて?11,845,446
27.
テストと評価 (4) eth1 tra?c
bit/sec bzip gzip lzo 圧縮なし
28.
まとめ HadoopLzo ?HDFSの容量を節約できる ?帯域を圧縮し、処理時間を短縮できる Hadoop 0.20.xでは特別な理由が無い限り 利用したい
Editor's Notes
#2:
\n
#3:
\n
#4:
\n
#5:
\n
#6:
\n
#7:
\n
#8:
\n
#9:
\n
#10:
\n
#11:
\n
#12:
\n
#13:
\n
#14:
\n
#15:
\n
#16:
\n
#17:
\n
#18:
\n
#19:
\n
#20:
\n
#21:
\n
#22:
\n
#23:
\n
#24:
\n
#25:
\n
#26:
\n