Hadoop splittable-lzo-compression

  • 2,490 views
Uploaded on

Hadoop splittable-lzo-compression

Hadoop splittable-lzo-compression

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,490
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 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 1ELEPHANT DOG 1 CAT 1 CAT 4 ELEPHANT 1 CAT 1 CAT 1 ELEPHANT 1CAT DOG CAT 1 RABIT RABIT 1 ELEPHANT 1 DOG 1 DOG 1 RABIT 2 CAT 1CAT CAT CAT 1 RABIT 1 RABIT RABIT 1 RABIT 1
  • 6. Hadoopを利用する利点・フレームワーク(MapReduce)に沿って プログラムを書ばバッチ処理を分散処理を してくれる・ノードを増やせばスケールする欠点・起動のオーバーヘッドが大きため、 リアルタイム性を求める処理には向かない
  • 7. Hadoopで扱える圧縮形式 複数 スプリッ圧縮形式 ツール アルゴリズム 拡張子 ファイル タブルgzip gzip deflate .gz 不可 不可 ファイル ZIP zip deflate .zip 可能 単位bzip bzip2 bzip2 .bz2 不可 可能 LZO lzop LZO .lzo 不可 不可
  • 8. Hadoopで扱える圧縮形式 複数 スプリッ圧縮形式 ツール アルゴリズム 拡張子 ファイル タブルgzip gzip deflate .gz 不可 不可 ファイル ZIP zip .zip deflate 可能 単位 可能に!bzip bzip2 bzip2 .bz2 不可 可能 LZO lzop LZO .lzo 不可 不可
  • 9. 2.1GのApacheのアクセスログ 圧縮時間 圧縮速度 サイズ 解凍時間 解凍速度圧縮形式 サイズ比 (sec) (M/sec) (MByte) (sec) (M/sec)gzip 56 38.4 291 15 143 1/7bzip 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. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 2 3 4
  • 13. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 2 3 4
  • 14. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 2 3 4
  • 15. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 2 3 4
  • 16. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 2 3 4
  • 17. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 2 3 4
  • 18. HDFS上ファイルをコピー secondary namenode namenodetasktracker1 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-pseudoHadoopを設定 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.LzoTextInputFormatpublic class Test extends Configured 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.4Cloudera CDH2XeonL5520 x1(8 thread)Memory 16GByte を4台 で 2GByteのログを4つCountmapred.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.lzohadoop jar /usr/lib/hadoop/lib/hadoop-lzo-0.4.4.jarcom.hadoop.compression.lzo.LzoIndexer test/MapReduceでインデックスを付ける場合にはhadoop jar /usr/lib/hadoop/lib/hadoop-lzo-0.4.4.jarcom.hadoop.compression.lzo.DistributedLzoIndexertest/
  • 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 8test/ 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 trafic bit/sec bzip gzip lzo 圧縮なし
  • 28. まとめHadoopLzo・HDFSの容量を節約できる・帯域を圧縮し、処理時間を短縮できるHadoop 0.20.xでは特別な理由が無い限り利用したい