Cloudera ManagerでLZOのライブラリを配布

Hadoop関連(全部俺) Advent Calendar 2014:9日目の記事です
昨年のブログにも書きましたが、Hadoopの圧縮フォーマットにLZOを使いたいことがよくあります。LZOはスプリット可能な圧縮フォーマットなので、MapReduceとの親和性が高いためです。
しかし、LZOはGPLライセンスで後悔されており、Apacheライセンスではありません。ライセンスの関係でHadoopに同梱されていないので、別途LZOのライブラリを用意し、ライブラリを全てのノードにインストールする必要があります。少々面倒です。
Cloudera Managerでは、ClouderaのサイトのGPL Extraレポジトリで提供されている、LZO形式のParcelが利用できます。Cloudera Quickstart VM環境に追加してみましょう。
※(12/12追記)現時点ではLZOのパーセルのバージョンが若干古い(5.1.4)ようです。手元の環境でその後設定したCDH5.2.1のパーセルとコンフリクトしてしまい苦労しました。今必要ない方はセットアップしない方が良いでしょう。
Parcelのレポジトリの追加やアクティブ化は、他のライブラリの追加などでも役立つでしょう。

Parcelのレポジトリを追加する

一番上のメニューバーから、[管理]->[設定]を選択します。続いて、左側のメニューからParcelをクリックし、[リモートParcelレポジトリのURL]の一番下の + ボタンをクリックします。
cm_parcelテキストボックスに http://archive.cloudera.com/gplextras5/parcels/latest と入力します。(CDH4の場合はhttp://archive.cloudera.com/gplextras/parcels/latest)
cm_parcel_gpl入力したら、右上にある[変更の保存]ボタンを押します。

注)手元の環境では日本語環境でボタンを押すとエラーが生じてしまいました。ブラウザの設定を英語環境に変更するとうまく保存ができたので、何か問題があるのかもしれません。(要検証)

cm_parcel_eng
 

Parcelをダウンロード

レポジトリが追加できたので、Parcelをダウンロードする必要があります。一番上のメニューから[ホスト]を選択し、[Parcel]タブをクリックしてから[GPLEXTRAS]の[ダウンロード]をクリックします。
parcel_activate
 

配布

ダウンロードが終わったら配布します。(ボタンを押すだけです)
parcel_ditribute
 

配布中

parcel_distibuting
 

アクティブ化

配布が終わったらボタンを押してアクティブ化します。
parcel_activeparcel_activete_doneこれで完了です。

参考資料

http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_ig_install_gpl_extras.html
ディレクトリを確認すると、LZOのライブラリが置かれています。無事にインストールされていますね。
[shell]
[cloudera@quickstart ~]$ find . /opt/cloudera/parcels/GPLEXTRAS/ |grep lzo
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop-0.20-mapreduce/lib/hadoop-lzo-0.4.15-cdh5.1.4.jar
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop-0.20-mapreduce/lib/hadoop-lzo.jar
/opt/cloudera/parcels/GPLEXTRAS/lib/impala/lib/libimpalalzo.so
/opt/cloudera/parcels/GPLEXTRAS/lib/impala/lib/COPYING.impala-lzo
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/COPYING.hadoop-lzo
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/hadoop-lzo-0.4.15-cdh5.1.4.jar
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/hadoop-lzo.jar
[/shell]
 

LZOの設定を有効にする

続いて下記ドキュメントの手順を参考に、LZOコーデックの設定を追加します。HDFSサービスの設定画面から、io.compression.codecのプロパティを変更してください。
lzocodec2つのプロパティを追加し、変更を保存します。終わったらサービスを再起動しておきましょう。詳細は下記ドキュメントをご覧下さい。
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_mc_gpl_extras.html
 

コメント