@johtaniの日記 2nd

@johtani ‘s blog 2nd edition

Cloudera Searchのモジュールたち

Cloudera Searchは次のようなモジュールから構成されています。 これはCloudera Searchのモジュールで、さらにこれらがSolrとかを使ってるみたいですね。pom.xmlを見たら何を使ってるかがわかるかな。

  • cdk-morphlines
  • search-contrib
  • search-core
  • search-flume
  • search-mr
  • search-solrcell

てきとーに、README.mdみながらメモを残してみました。ソースとかはまだ読んでないです。 ざっと眺めたけど、インデキシング処理の話がメインで、検索側がどうやって動くかってのがわからなかったなぁ。 ユーザガイド(注:PDF)ってのがあるから、これを読んでみるか。。。

各モジュールについては、以下。

cdk-morphlines(Cloudera Morphlines)

Cloudera Morphlinesという名前みたい。 検インデキシングアプリの構築、変更をラクにするためのフレームワーク。 ETLの処理チェインを簡単にCloudera Searchにデータを入れる設定(Extract/Transform/Load処理)がかけると。 バッチ処理、Near Real Timeのために使えるみたい。検索結果をさらに入れるとかもできるんかなぁ。?

Unixパイプラインのの進化版みたいなもので、一般的なレコードに対するStream処理から、Flueme、MapReduce、Pig、Hie、SqoopのようなHadoopコンポーネントも使えるみたい。

Hadoop ETLアプリケーションのプロトタイピングにも使えて、リアルタイムで複雑なStreamやイベント処理やログファイル解析とかに使えるの?

設定ファイルのフォーマットはHOCONフォーマット。AkkaやPlayで使われてる。

cdk-morphlines-core

Cloudera Morphlinesのコンパイラ、実行環境、コマンドのライブラリを含んでる。 ログファイル解析やsingle-lineレコード、multi-lineレコード、CSVファイル、正規表現パターンマッチ、フィールドごとの比較とか条件分岐とか、文字列変換とか色々なコマンドを含んでる。

cdk-morphlines-avro

Avroファイルやオブジェクトの抽出、変換、読み込み処理コマンド

cdk-morphlines-tika

バイナリデータからMIMEタイプを検出して、解凍するコマンド。Tikaに依存

雑感

Cloudera Searchへのデータの流し込みを設定ファイルに記述して実行するとデータの変換処理とかが記述できるって感じかな? Morphlinesのコマンドとして独自処理や使えそうな処理を作ることで、いろんな処理ができるって感じかなぁ。

search-core

Solrに対するMorphlineコマンドの上位モジュール

search-solrcell

Tikaパーサを使ったSolrCellを使うためのMorphlineコマンド。 HTML、XML、PDF、Wordなど、Tikaがサポートしてるものがサポート対象。

search-flume

Flueme Morphline Solr Sink。 Apache Flumeのイベントから検索ドキュメントを抽出、変換し、SolrにNearRealTimeで読み込むためのコマンド

search-mr

HDFSに保存されたファイルに含まれる大量データをMapReduceで処理してHDFS上の検索インデックスに焼きこむモジュール。

MapReduceIndexerToolは入力ファイルの集合からSolrのインデックスシャードの集合を作るためのmorphlineのタスクで、MapReduceのバッチジョブドライバー。 HDFSにインデックスを書き込む。 動作してるSolrサーバに対して出力されたデータをマージするのもサポートしてる。

とりあえず、Near Real Time検索するにはFlueme使って、バッチ処理でインデックス焼くのはMapReduceIndexerToolみたいだなぁ。

Comments