Cloudera Manager勉強会に参加してきました

7/27に開催された第1回Cloudera勉強会に参加してきたので、その内容について軽くレポートしたいと思います。
お題はCDHの運用管理ツールである、Cloudera Manager4.0の紹介でした。Hadoopは運用周りのサポート状況がまだまだ弱い状態であり、その部分に着目したCloudera Managerには強い関心を持っていたので参加することにしました。

場所はCloudera社が入っているビル (ビュレックス京橋) の地下会議室でした。少し遅れて入室したのですが、入ったら机に飲み物とお菓子が既に沢山置いてあったりして、リラックスした雰囲気で進行していました。講師は嶋内 (id:shiumachi) さんです。

SlideShareにも上がっている以下の資料をベースに概要を解説した後に、実際に画面を動かしながらの説明になりました。
http://www.slideshare.net/Cloudera_jp/cloudera-manager4namenodeha

リラックスした雰囲気で進めていたこともあって、途中質問が沢山飛び交い、随分盛り上がりました。結局予定よりかなりオーバーしていたような。
以下、上の資料に載っていない話や質疑応答を中心にまとめます。

  • ClouderaManagerについて
    • 多数のマシンの集合体を1つのシステムとして管理するという考え方の元で作られている。
      • Hadoopでは1台のサーバーが落ちてもパーツの1つが落ちたようなものなので。
    • いわゆるインストール作業が要求されるのはサーバーのみで、エージェントはインストール後に画面から対象サーバーを選択してSSHでばらまくようになっている。
    • もちろんHadoopクラスタを構成するノードに共存させてもいいが、専用ノードにインストールすることを強く推奨する。
      • 管理DBは複数種類あり、大規模なクラスタを管理する場合は別々のノードに分けた方が良い。
  • Service and Configuration Manager (SCMについて)
    • システムの起動停止を担当する。ちゃんと依存性を見て、順番に起動や停止を行ってくれる。
    • フリー版でもほとんどの機能が使えるが、Enterprise版ではバージョン管理が行える。
      • バージョン管理というより、SCMのリビジョン管理に感覚は近い。1つ1つのアクションを戻せるようになっている。
    • クライアント設定はバージョン4からちゃんと設定を反映してくれるようになった。(3では設定ファイルの生成だけ)
      • /etc の下に設定を出す。環境変数の設定なども不要にしている。
    • 面倒なHDFS HAの設定も3ステップでOK。
    • アップグレードはパッケージのアップグレードはできないが、サービスのアップグレードはできる。
    • サーバーの設定については、GUIからの設定を、/var/scm の下に設定XMLを吐き出して利用するようになっている。
      • 動的に生成するので、設定のマスタはDBにあると考える。
    • ログの取得について、ログのデータをClouderaManagerのDBに入れるようなことはしない。DBにはログファイルのインデックスのみ入っており、都度読み込みに行く。
      • ログは時系列検索が可能になっている。
  • API
    • フリー版の全ての操作をREST API化している。
    • APIドキュメントはexampleしか載っていないw (まあ、カラム名を見れば大体分かりますが...)
  • Enterprise版
    • 個別に購入するのではなく、サブスクリプションを購入したら利用できるようになる。
    • サブスクリプション版を購入したら、Cloudera側としてはClouderaManagerを使って欲しい!
      • サポート時のやり取りがスムーズになる。
      • 例の閏秒問題の時、ClouderaManagerを使っていた顧客はそうでない顧客と比較してとても早く問題を特定できたとのこと。
    • サービスモニタ画面があり、ヘルスチェックや稼働状況がポータル画面の形式でまとまっている。
    • ホストモニタ機能もある。CPU、メモリ使用率はロードアベレージといった割と基本的な項目ではありますが。
      • 項目は今のところ決めうちで、ユーザー側でカスタマイズして追加することはできないとのこと。
    • 稼働しているコンポーネントのバージョンチェック機能がある。実はこれが結構便利で、クラスパスの設定ミスなどによるバージョン不整合なども検知できるようになる。
    • ジョブのアクティビティモニタは残念ながらMapReduce1のサポートにとどまっており、MapReduce2はまだ。
    • アクティビティモニタで面白いのは類似ジョブの比較機能。95%信頼区間から外れているかを見て、性能劣化の傾向とかをチェックすることができる。
      • 「類似」の基準はジョブ名とのこと。Hiveだとクエリを見る。
    • 面白い機能として、サポート連携機能というのがある。Clouderaのサポートに渡すための診断情報を収集して送信できる。
  • デモ
    • (Terasortを流してデモしていました。)
    • Mapのローカリティを表示するチャートがある。
    • ラックアウェアネス設定もGUIから簡単に可能!ダイアログからラック名を入力して設定できてしまう。
    • ダイアログを閉じられないことがあったり、ちょっとバグっぽい動作もw
    • Oozieも管理項目に入っているが、現状は起動停止とヘルスチェック程度しかサポートしていない。
    • Hueは2.0になって、ジョブ実行管理に徹するようになった (管理機能はClouderaManagerに譲るように)。
    • ユーザーの権限管理はまだシンプル。管理者権限と閲覧権限のみ。
    • ログ検索はクラスタ、ノードをまたがって行えるので便利!
    • レポート機能があるが、ディスク周りが中心。MapReduceのレポートは1つだけあったが、デモではいつまで待っても出力されず...。
    • Pigのぶたさんのアイコンがちょっと可愛かったようなw
  • 質疑応答とか
    • 設定をXMLから読み込んだりはできる?
      • その機能はない。GUIからの設定のみ。インポート機能があるが、これはClouderaManager自体の設定のインポート。
    • ClouderaManager自体の冗長化はできる?
      • 特にそのような機能は設けていない。普通のRDBMS冗長化対策で。現状はClouderaManagerがSPOFになっているのは認識しているので、改善を検討している。
      • SCM本体のDBが生きていれば稼働はできる。なので、サービスごとにDBは分割することを勧める。
    • Enterprise版の評価版はある?
      • 個別問い合わせでお願いします、とのことです。

このような感じでした。Hadoopの管理用ツールとして欲しいところを一通りカバーできているようで、なかなか良くできているとの感想を持ちました。GUIも結構頑張って作り込んでいる印象です。
Cloudera社のサポートの経験をうまく活かしているなと思いました。サポートが遭遇したユースケースを中心に機能を作り込んでいったという感じで、とても参考になりました。