wyukawaさんがデータ分析環境について書いていましたが、全部 CDH を使えば実現可能なので便乗して書いておこうと思います。
1. ETL 処理
CDH なら以下のツールがあります。
- Sqoop
- RDBMS / DWH などに対するインポート・エクスポートツール。最近日本語の本も出版されたので皆さん買ってください。
- Hue を使えば Web ブラウザ上から設定できます。デモビデオはこちら。
- Pig
- Hive の影に隠れがちなクエリ言語ですが、特に ETL として使う場合は書きやすいです。中身は MapReduce。Java はもちろん、Python、Javascript、Ruby、そしてGroovyでUDFが書けるのが特徴。HCatalog というツールのおかげで Hive 同様スキーマを扱えるようになりました。
- Hue を使えば Web ブラウザ上から実行できます。デモビデオはこちら。
- Hive
- 分析だけじゃなく ETL としても普通に使えます。使い方含めて有名なので省略。
- Hive本の日本語版もあります。
- Hue を使って Web ブラウザ上から csv を取り込んで Hive テーブルに入力するデモビデオはこちら。
- Kite SDK
- Spark
- 最近注目を集めている高速分散処理フレームワーク。Scala だけでなくPythonでも書けるのでPythonistaにはオススメ。
ちなみに wyukawa さんが言及している Luigi ですが、中身は単なる Hadoop Streaming なので、今からこれを使うぐらいなら上のツールから選択した方がいいと個人的には思います。
2. ジョブ管理
全部 Oozie でできます。
ジョブネット
Oozie ワークフローがジョブネットに相当するもので、これにより Sqoop でデータをロードして Hive で変換処理、失敗したらメールを送信、などの処理をまとめておくことができます。
Oozie 単体だと xml でワークフローを記述しなければいけないので少々面倒ですが、Hue を使えば Web ブラウザからドラッグアンドドロップで簡単にワークフローを書くことができます。
日付を指定してのジョブ実行
Oozie コーディネータを使えば日時を指定してのワークフローのスケジューリングが可能です。毎週日曜の午前4時に実行、毎月1日0時に実行などの指定はもちろん、cron と同じような書式でのスケジューリングも可能です。さらに同時実行数の指定や、キューにたまったときに FIFO にするのか LIFO にするのか、あるいは最新のスケジュールのみを実行するのかなど細かく指定することができます。
認証機構
Kerberos 認証があります。
3. 集計結果格納用の RDBMS
計算に時間がかかって困るぐらいに RDBMS が肥大化するほどのデータがあるのなら普通に Hadoop 上で保存しておけばいいと思います。多分 Impala をそのまま実行した方が速いです。
4. アドホック分析
Hue を使えば上記の処理も全部ひっくるめて Web UI できます。
5. 分析用クエリ
CDH なら Impala があります。Hue から Impala を使う人もいれば、BI ツールから JDBC 経由で Impala につなぎにいく人もいます。
Cloudera Impala の本の日本語版もオライリーから無料でリリースされています。
デモビデオはこちら。
おまけ: Hue を試してみたい!
Hue は上記の他に色々できます。
- Solr のスキーマ作成と、検索結果の閲覧 UI (ビジュアルエディタつき) (デモビデオ)
- 最新版だと検索結果のグラフ表示もできるようになりました。(デモビデオ)
- RDBMS に対して直接 SQL を実行(デモビデオ)
- HBase テーブルの編集(デモビデオ)
- ZooKeeper の znode の閲覧 (デモビデオ)
- HDFS 上にファイルをアップロード
- HDFS 上のファイルを直接編集・保存
http://demo.gethue.com/ にアクセスすれば、Hue のデモを触ることができます。まだリリースしたばかりのベータ版なので、Impala でのクエリ実行や検索結果の閲覧、Oozieワークフローの実行ぐらいしかできませんが、どんな感じか理解するためにとりあえず触ってみるものとしては十分でしょう。
デモ以上に試してみたいけどクラスタまでは作りたくないという人はクイックスタートVMを使うといいでしょう。CDH5のコンポーネント一式がVMに収まっています。
Hue の公式サイトはこちら。