(Hadoop/Cloudera) Cloudera Search のセットアップ
どうも!今日は、EC2 からちょっと離れ、Hadoop + Solr のコンビネーションである、Cloudera Search のセットアップについてです。本当はこっちが本題。
Cloudera Search なんですが、Hadoop + Solr*1はもちろん、Flume*2など話題のコンポーネントを一度にセットアップできるという、なんともお得なディストリビューションなのです。Hadoop 上で Solr を動かすメリット・デメリット等も含め調べていきたいと思っていますが、今日は初期セットアップまでやりました。
Solrサービスの追加
Cloudera Manager のインストール → Hdfs / MapReduce などのコンポーネントのインストール → MapReduce の動作確認 が事前に完了していることとします。まず、Solr サービスをインスタンスに追加します。この作業があって初めて、インスタンスにSolrが実際にインストールされます。Cloudera Manager のインストール時に Solr を選択する画面が出ますが、サービスには追加されていませんでした*3。
実際の作業は、Cloudera Manager のトップページのクラスター名の右側にある▼ボタンを押下して、サービスを追加するを押すと、Solr のサービスが追加できます。追加時に、導入するインスタンスの選択を行います。
Solrのイニシャライズとコレクションの作成。
次に、Solr の初期化とコレクションの作成を行います。Solr を触ったことがある人には、”初期化”に馴染みがないと思いますが、実際にはZooKeeper上にSolrの設定ファイルをアップロードする処理を行ってくれます。Cloudera Search は SolrCloud が前提となるので、この作業が必要になります。
基本的にSolrの設定は solrctl というコマンドラインツールで行います。まず、初期化を行います。
$ solrctl init
次に、Solr のコレクションを作成します。generate でデフォルトの solrconfig.xml や schema.xml を生成します。もちろん、最初から設定ファイルがあれば、それを使ってもOKです。その後、create で指定した config を collection1 として Zookeeperにアップロードします。アップロード後に確認のため、listを実行します。Zookeeper にアップされたコレクションを一覧します。
$ solrctl instancedir --generate $HOME/solr_configs $ solrctl instancedir --create collection1 $HOME/solr_configs $ solrctl instancedir --list
最後に、実際に Solr にコレクションを作成します。
$ solrctl collection --create collection1 -s 1
確認として、Solrの管理画面を確認します。Cloudera Manager のホーム画面から、クラスタ以下のSolrをクリックします。Solr のコンポーネントの画面が表示されるので、右上の「Solrサーバー Web UI」をクリックします。
そうすると、Solr の UI が表示されます。ちゃんと DataDir が HDFS になっています。コレクション名は collection1 を指定したのですが、実際には collection1_shard1_replica1 となっています。
ここまでで、Solrの初期セットアップは完了しました。次回は、スキーマの修正をしつつ、データの投入にトライしてみます。