Hadoop LZO圧縮環境構築

HadoopでLZO圧縮環境の構築手順を残しておきます。
圧縮することでディスク容量の節約やJobの処理時間が向上します。

必要なパッケージのインストール

$ yum install -y git
$ yum install -y lzo-devel lzop
$ yum install -y ant
$ yum install -y ant-nodeps
$ yum install -y gcc

hadoop-lzo取得

$ git clone git://github.com/kevinweil/hadoop-lzo.git

ビルド

$ cd hadoop-lzo
$ export JAVA_HOME=/usr/java/jdk1.x.x ←環境によって変更
$ export CFLAGS=-m64
$ export CXXFLAGS=-m64
$ ant compile-native tar

jarファイルとnativeディレクトリを移動

$ cp build/hadoop-lzo-0.4.15.jar /usr/lib/hadoop-0.20/lib/
$ tar -cBf- -C build/hadoop-lzo-0.4.15/lib/native . | sudo tar -xBvf - -C /usr/lib/hadoop-0.20/lib/native/

core-site.xmlとmapred-site.xmlに圧縮設定を記述

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>

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>

Cloudera Managerでも構築

Clundera ManagerでのLZO環境の構築方法も記載しておきます。
詳細は公式を確認してください。

リポジトリ登録

管理→設定→Percel→リモートParcelリポジトリのURL
http://archive.cloudera.com/gplextras/parcels/を追加する

f:id:kashigeru:20140520230914j:plain

HADOOP_LZOをダウンロード

ホスト→Parcel
Hadoop_LZOがダウンロード可能になっているのでダウンロード

HADOOP_LZOをクラスタに配布

配布ボタンを押してクラスタ全体に配布します。

f:id:kashigeru:20140520231652j:plain

HADOOP_LZOをアクティブ化

アクティブ化ボタンを押してアクティブ化します。

f:id:kashigeru:20140520231450j:plain

アクティブ化になっているか確認

f:id:kashigeru:20140520231739j:plain

あとは公式ページにあるように各サービスに設定を投入
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)