Elasticsearch Cluster Runner

Elasticsearch関連の開発をしていると、クラスタ環境とかでのテストとかを使いたくなるケースがあると思う。Elasticsearchはクラスタ環境を簡単に作れるけど、わざわざ複数のインスタンスを立ち上げてとかは面倒だな、と思っていたので、ElasticsearchのInternalNodeを使って、Ⅰつのインスタンスで複数のElasticsearchのノードを起動できるElasticsearch Cluster Runnerを作ってみました。
JavaとMavenがインストールされた環境であれば、

git clone https://github.com/codelibs/elasticsearch-cluster-runner.git

として、プロジェクトをcloneして、あとは

mvn exec:java

とすれば、3ノードのElasticsearchクラスタが起動します。
-basePathオプションでElasticsearchのルートディレクトリを指定することはできるけど、デフォルトではes_homeディレクトリが作成されてそこを利用されます。logsとかはノードごとにそこ以下にディレクトリが作成されます。
-numOfNodeを変更すればノード数も変更することができます。
あとは使いながら、改善していこうかと…。

River Web 1.0.1をリリース

River WebのIssueでNTLM認証はできないの?というコメントをもらったので、対応して、1.0.1をリリースしました。まぁ、中身はS2Robotだから、内部的には対応しているものの、River Webから指定する口がなかった感じ。BASIC/DIGEST認証を含めて対応して、クロール時に任意のヘッダーも渡せるようにしました。という感じで、これは要望ベースに対応していこうかな…。

Elasticsearch導入後に入れておきたいプラグイン

Elasticsearchを導入後に入れておきたいプラグインを上げておきます。いろいろとあると思うけど、私の場合は以下を入れておく感じかな。pluginコマンドでインストールしますが、rpmで入れると、/usr/share/elasticsearch以下に入るので、環境に合わせて呼んでください。
まず、elasticsearch-headプラグイン。クラスタやインデックスの状態が簡単にみられます。個人的には必須な感じです。

# /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head

次にBigdeskプラグイン。JVMとかインデックスへのアクセスとか状態をグラフ化してくれます。

# /usr/share/elasticsearch/bin/plugin -install lukas-vlcek/bigdesk

あとは、日本語の形態素解析のトークンナイザのkuromoji。形態素解析をしたいときに入れておきます。まぁ、これは必要に応じてかと。

# /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-analysis-kuromoji/1.5.0

という感じで、上記以外にも良い物があればその時にでも紹介しますー。