データフローが必要な背景
Hadoop(HDFS)にデータを集めてSparkやMapReduceで処理を行いたい場合、データのパイプラインを作る必要があるかもしれません。HadoopエコシステムのApache FlumeやApache Kafkaなどを組み合わせてパイプラインを作ることもできますが、それなりの手間と労力がかかります。
データフローを作るためのOSSとしてApache Nifi (https://nifi.apache.org/) がありますが、ApacheライセンスのOSS、StreamsetsのData Collector (https://streamsets.com/product/) もあります。後発な分、フローの定義やモニタリングのGUIが洗練されているような印象がありますね。
Data CollectorはApacheライセンスのOSSですが、Apacheプロジェクトではありません。しかし、HadoopやHadoopエコシステムと組み合わせて使うことが多いでしょう。Hadoopの環境は Cloudera Managerを使って簡単に構築できますが、同様に、Data CollectorもCloudera Managerを使って簡単にセットアップできます。今回は手元の環境でセットアップして試してみました。
なお、Streamsetsについては下記の記事も参考になります。
http://qiita.com/junko_urata/items/e6355bba3ad3f35c854eの
デモ動画
https://twitter.com/mlmoreno/status/753267274224578560
環境の準備
- Cloudera Quickstart VM 5.7 の仮想マシン
または - Cloudera ManagerがセットアップされたHadoopクラスタ
Cloudera Quickstart VMのセットアップについては以下を参考にしてください。
- http://linux.wwing.net/WordPress/?p=2735
- http://linux.wwing.net/WordPress/?p=2792
- http://linux.wwing.net/WordPress/?p=2852
Cloudera Manager に Streamsets のCSD (Custom Service Descriptors)をセットアップ
今回はCloudera Managerで構築するので、
https://streamsets.com/opensource/
のCSDの手順に従ってセットアップします。
ダウンロードが終わったら手順に従ってファイルをセットアップします。
[cloudera@quickstart ~]$ cd Downloads/
[cloudera@quickstart Downloads]$ sudo mv STREAMSETS-1.5.0.0.jar /opt/cloudera/csd
[cloudera@quickstart Downloads]$ sudo chown cloudera-scm:cloudera-scm /opt/cloudera/csd/STREAMSETS-1.5.0.0.jar
[cloudera@quickstart Downloads]$ sudo /etc/init.d/cloudera-scm-server restart
Stopping cloudera-scm-server: [ OK ]
Starting cloudera-scm-server: [ OK ]
[cloudera@quickstart Downloads]$
Cloudera ManagerのWebUIからログインし、Parcelの画面からStreamsetsのDataCollectorをダウンロードします。
メニューのアイコンをクリックしてParcelの画面に移動します Streamsets DataCollectorをダウンロードします。 ダウンロードが終わったら配布します。(今回は1ノードですが、、、) 配布したらアクティベート(アクティブ化)します。 これでアクティブ化が完了です。Cloudera ManagerからDataCollectorサービスを追加する
Cloudera Managerは、HiveやHDFSなどのサービスをGUIからセットアップできますが、同じ手順でDataCollectorもセットアップできます。トップページの左側の▼を押して、メニューからサービスの追加を選びます。
下にスクロールしてみるとStreamsetsというサービスが選択できるようになっています。 チェックして次に進みます。ウィザードが表示されるので、画面の指示に従って進みましょう。 Data Collector をインストールするホストを選択します。まだ割り当てていないので、「ホストの選択」をクリックしましょう。 今回は1台しかないので、quickstart.clouderaをチェックします。 次に進みます。 設定はデフォルトのまま次に進みます。 自動的にサービスが開始されます。 サービスが開始したら続行しましょう。 これで、指定したホストでDataCollectorサービスが実行されています。DataCollectorサービスの状態を確認する
トップページに戻ると、サービス一覧にStreamsetsが追加されています。StreamSetsをクリックしてサービスの画面に移動しましょう。
StreamsetsサービスにData Collectorがあるのでクリックしてみます。
Data Collectorは正常に動作しているようです。メニューの「Data Collector Web UI」をクリックするとData Collectorが提供している Web UIが表示されます。
Data Collector
デフォルトのユーザー名、パスワードは下記の通りです。
- admin/admin
ログインすると以下の画面が表示されました。
この画面からデータフローを作成することができます。
次回
次回 (http://qiita.com/kernel023/items/8a939f51cca8469e1f04) はGUIからデータのパイプラインを作成します。