(2015/2/19追記: 解決したので更新しました)
※VMのダウンロード時間、展開時間、その他を含めると2時間49分ぐらいかかるもしれませんが、、、(笑
CDHにKafkaが追加
さて、本日アナウンスがありましたが、CDHのコンポーネントにApache Kafkaが加わりました。
Apache Kafkaの公式ページを引用すると、Kafkaは「高スループット分散メッセージシステム(A high-throughput distributed messaging system)」とでも呼べば良いでしょうか。Fast, Scalable, Durable Distributed by Designと記載されています。LinkedInで開発され、既にYahoo!やTwitter、Netflixなど多くの企業で使われています。(リスト)
昨年Cloudera Labで実験目的でダウンロードできるようになっていたのでKafkaのインストールを試したことがありました(過去ログ1 2 3 )が、晴れて卒業して正式サポートになりました。
では、例のごとく Cloudera Qucikstart VMで試してみましょう。
ハードウェア要件など
Quickstart VMで試す気満々なのですが、同日公開されたブログによると、最低でも
- CPU 2GHz 4core以上
- 7200rpmのSATA HDDx6本
- 32GBメモリ
- 1Gb Etherenet
のハードウェアを用意しろとのこと。また、クラスタのサイジングは
- ディスク容量、または
- メモリ容量
に基づいて決めて行きますが、複製係数は少なくとも2とのことなのでそれなりのノード数が要求されます。
まぁ、とはいえ今回は動かすだけなので手抜きで仮想マシンで試しますが、本番環境にはそれなりのスペックのハードウェアが必要になりますね。
ダウンロード
ダウンロードページに行ってみると、Kafkaを単体でもダウンロードできるようになっています。

Kafkaのページは下記のようになっていました。jarファイルのみ、またはParcelが選べるようです。現時点ではRPMやdeb形式での提供はされていないようですね。
(2015/2/19更新)昨晩試したときはParcelのリンクもあったのですが、今朝になってファイルをダウンロードして更新する形式になっていました。これでうまくいった。
注)ぱんくずリストが間違ってるのはご愛嬌….CDH4じゃないですよね…

Quickstart VMのダウンロード
インストール、日本語化などは何回も書いているので割愛します。初めての方はこちらのページなどをご覧下さい。
Quickstart VMでの作業でやったこと
- 日本語フォントなどのインストール $ sudo yum -y groupinstall japanese-support
- 仮想マシンに割り当てたメモリが4GBしかないので、強引にセットアップ $ sudo ~/cloudera-manager –force
- ブラウザの言語設定を日本語が優先されるように変更
- 念のため再起動 (HDFSのcanaryテストがエラーになっていたので)
- 不要なサービス停止
Kafka用のParcelをセットアップ
KafkaはParcelでセットアップするのですが、CSDという形式の特殊ファイルになっています。セットアップ手順はインストール手順書に書かれていますが、興味があれば前回のブログもご覧下さい。
手順に従ってCSDファイルをダウンロードして指定されたディレクトリに配置し、Cloudera Managerを再移動します。
[shell]
$ wget http://archive.cloudera.com/csds/kafka-1.2.0/KAFKA-1.2.0.jar
$ sudo cp KAFKA-1.2.0.jar /opt/cloudera/csd/
$sudo service cloudera-scm-server restart
[/shell]
KafkaのParcelをダウンロード
配布&アクティブ化
ダウンロード後、配布ボタンを押すとしばらくして「アクティブ化」と表示されます。
ん?レイアウトが崩れてるな。Firefoxのバージョンが古いかもしれないのでアップデートします。
[bash]
$ sudo yum -y update firefox
[/bash]
Firefox 31.4に上げて試してみたところ、、、変化無し。\(^o^)/オワタ
英語だと美味く表示されるので、日本語のレイアウトの問題でしょうね。。今回やりたいことではないので涙をのんでスルーします。(本来はJiraに登録すべきなんでしょうが…)

再アクティブ化
気を取り直してアクティブ化すると、エラーメッセージが。
CDHは5.3のはずなのにエラーになるのはおかしいだろ!バグだ!と思ったのですが、よくよく考えてみると、Quickstart VMのデフォルトは各コンポーネントがRPMでインストールされており、Parcelではないことが問題かもしれません。
前回のKafkaのセットアップでは問題がなかったので、CDH5.3.1のParcelをダウンロード、配布、アップグレードしてから試してみました。
CDH5.3.1 Parcelのダウンロード、配布、アップグレード
あまり深く考えずにクリックしていたところ、アップグレードのために当初予定していなかったクラスタのアップグレードウィザードが開始。
なかなかKafkaにたどり着かない。。
ここではアップグレードウィザードを使っていますが、Cloudera Manager 5.3.0の新機能として、CDHのupgrade wizardが賢くなっているようです。(リリースノート)
※こんな小ネタを書いて時間を稼いでいてもアップグレードがまだ終わらない…
(30分ぐらい経過して)最終的にようやくアップデート完了
Kafkaサービスの追加
メニューからKafkaサービスを追加します。後はウィザード形式で追加するだけでした。スクリーンショットを貼っておきます。







インストールが終わりました。サービスも無事に稼働していますね。

このように、既にCloudera Managerが導入されている環境であれば、セットアップはものすごく簡単です。(私は別の意味で遠回りしてしまいましたが…)
さぁ、皆さんも試してみてください!
余談:Kafkaのバージョンについて
今回のKafkaのバージョンですが、Kafka 1.2.0 と表記されています。しかし、アップストリームを見ると(2015/2/19現在)0.8.2.0が最新です。なぜでしょう?
これは、Clouderaが内部的に使用しているバージョンのようで、Parcelを見るとKAFKA 0.8.2.0-1.kafka 1.2.0p0.2となっています。つまり、最新の0.8.2.0ベースだと言うことですね。
将来的にCDHに統合された時点でこのようなややこしいバージョニングから解放されると思いますが、現時点ではCDH5.xに統合されていないために生じているようです。わかりにくいですよねぇ…




コメント
あー、なんかダウンロードページの記載が変わってる。これが原因なのかも…
http://www.cloudera.com/content/cloudera/en/downloads/kafka/1-2-0.html
あっ、うまくいった。
ダウンロードページに騙されてたのか。トラブルシューティングの2時間を返して… (~_~
うまくいったので書き直しました。めでたしめでたし。