【ver2.1.1】CentOSにElasticSearchを入れて起動するまでの続きです!
環境(2016-1-12)
- CentOS6.5
- ElasticSearch2.1.1
概要
データのインポートにはEmbulkを使用します!!
EmbulkにはBigQueryやRedshiftそして今回のElasticSearchとめっちゃ助かってます
流れ
Embulkインストール
Embulk本体はhttps://github.com/embulk/embulk#linux--mac--bsdからどうぞ
使用するプラグインをインストール
今回は
inputにembulk-input-mysql
outputにembulk-output-elasticsearch
を使用する。
embulk-input-mysqlに関してはembulk gem install embulk-input-mysql
でいけるんだが
embulk-output-elasticsearchに関しては2016/1/12時点ではそのままインストールしてしまうと
runさせた時にFailed to deserialize exception response from stream
で怒られるのでgitcloneしてbuildしないといけない。
cd [任意のディレクトリ ※今回は/tmpを例にする]
git clone https://github.com/muga/embulk-output-elasticsearch.git
cd embulk-output-elasticsearch
./gradlew gem
Elasticsearchの設定ファイルを編集
# 下記を追加する。
# 今回はクラスタとかを組むわけではないので、このノードをマスターにする
# これを設定しないnodeないよ〜ってエラーになる。
node.master: true
設定ファイルを作成
in:
type: mysql
user: [user名]
password: [password]
database: [データベース名]
table: [テーブル名]
host: [host]
select: "*"
out:
type: elasticsearch
index: [index名]
index_type: [indexのタイプ]
nodes:
- {host: localhost, port: 9300}
preview
embulk preview -I /tmp/embulk-output-elasticsearch/lib config.yml
ポイントは-I /tmp/embulk-output-elasticsearch/lib
さきほど入れたembulk-output-elasticsearchを指定すること。
これを指定しないとエラーになる
run
embulk run -I /tmp/embulk-output-elasticsearch/lib config.yml
実装確認
マッピングされているかの確認
curl -XGET 'http://localhost:9200/[index名]?pretty'
データの保持されている数を調べる
curl -XGET 'http://localhost:9200/[index名]/[indexタイプ]/_count?pretty'
最後に
Embulkには本当に感謝です。