k4200’s notes and thoughts

Programmer side of k4200

Cloudera ManagerでHadoopやHBaseのクラスタをセットアップする

目的はCloudera Managerで楽にHadoopクラスタ構築をする

クラスターの実験用に自宅サーバーを購入したので、ぼちぼちセットアップしていく。以前VPSで2台構成のクラスタ(しょぼい)を構築した時は、CDHを手動でインストールしたが(過去記事)、今回はメモリとかも割と潤沢にあるのでCloudera Managerというのを使ってみることにした。

Coudera Managerは、HadoopHadoop関連のソフトウェア(HBase, ZooKeeper, Hive, Impala, Hue等)のクラスターを構築するためのソフト。Free Editionは50ノードまで(ver. 4.5からノード数の制限が無くなったそうです)無料で使える。

ドキュメントはこの辺から。

環境

今回の環境を簡単に。

  • CentOS 6.3
  • Cloudera Manager Free Edition 4.5

HWは2台。役割分担はこんな感じ。

  • 1台目(マスター的な役割のものをこっちに)
  • 2台目(スレーブ、クライアント的な役割のものをこっちに)
    • HDFS Data Node
    • HBase Region Server
    • Hadoop Task Tracker

スレーブ用のノードは、今後データ量が増えてきたら増やす予定。

Cloudera Manager 4.5 Free Editionのインストール

これは簡単。こちらのドキュメント通り。

初めにSELinuxはオフにしておく。やり方が分からない人はぐぐって。

次にインストーラーをダウンロードしてきて(要ユーザー登録)、それを実行。

$ chmod u+x cloudera-manager-installer.bin
$ sudo ./cloudera-manager-installer.bin

インストーラーの中でOracle JDKなどもインストールしてくれる。

インストール完了後、以下のURLで管理画面にアクセス可能。初期ユーザー名とパスワードは共に admin 。
http://サーバー名:7180/

各ノードに、Cloudera Manager Agent、CDHをインストール

Web画面から、クラスターにノードを追加する。自分の場合、前述の通りサーバーが現状2台。1台はCloudera Manager等も動いているが、2台ともノードとして追加する。

基本的には画面の指示に従っていけばいいし、エラーメッセージとかも親切なので使いやすい。いくつか気をつけるポイントを挙げておく。

CDH4を使う場合は「Use Parcels」、CDH3を使う場合は「Use Packages」を選択

Web画面でのウィザードの最初で「Use Parcels」と「Use Packages」を選ぶ場面があるが、CDH4系を使う場合は前者を、CDH3系を使う場合は後者を選択する事。特に、CDH4 → CDH3に後から変更するというのは面倒、というか再インストールし直した方が早いので。

各ノードにCDHを事前にインストールしておく必要は「ない」

Parcelを使う場合もPackageを使う場合のいずれも、web画面からのウィザードの途中でCloudera Managerが各ノードにCDHをインストールしてくれるので、自分でCDHをインストールする必要は無い。

Role Inspection(とかそんな名前の)は必ず実施する

ウィザードの最後の方で、Role Inspectionをする、みたいな感じのボタンがあるので、それは必ず押す。そうすると、その次の画面でどのサーバーにどのロールを割り当てるか、という設定が出来る。そのボタンを押さずに「Continue」を押すと勝手に割り振られてしまう。

ロールとは、HBase Master、HBase Region Server、HDFS Name Node、HDFS Data Nodeとかそういう、サーバーの役割。

ファイアウォールの設定等を忘れずに

かなり色んなプロセスを動かす事になるので、このドキュメントを見て、必要なポートを開けておく。

セットアップ後にやること

adminパスワードの変更

説明不要かと。

ヒープサイズ等の変更

画面から設定を色々変えられるけど、とりあえずヒープだけは一番最初の時点で変えといた方がいい。HBaseなんて、メモリが少ないと殆どまともに動かないので。

まとめ

Cloudera Managerはちょっと癖があるけど、、慣れてしまえばHadoopクラスターが簡単に構築できるので、Hadoopを使う人は検討してみても良いと思う。