- 更新日: 2014年6月28日
- Elasticsearch
CentOS6にElasticsearchをインストールしMySQLからデータをインポート
CentOS6 に Elasticsearch をインストールする手順です。さらに、JDBC plugin を用いて、MySQL データベースから Elasticsearch の index へとデータをインポートさせます。
Java をインストール
Elasticsearch は Java で動作しますので、まずは CentOS に Java をインストールします。
1 2 3 4 |
# yum search jdk # yum install java-1.7.0-openjdk-devel |
Elasticsearch をインストール
公式の Elasticsearch リポジトリを登録します。
1 2 3 |
# rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch |
今回は、elasticsearch-1.1 をインストールすることにしました。
1 2 3 4 5 6 7 8 9 |
# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch-1.1] name=Elasticsearch repository for 1.1.x packages baseurl=http://packages.elasticsearch.org/elasticsearch/1.1/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1 |
続いて、elasticsearch をインストール。
1 2 3 |
# yum install elasticsearch |
インストールした elasticsearch を service に登録して起動。
1 2 3 4 5 |
# chkconfig --add elasticsearch # chkconfig elasticsearch on # service elasticsearch start |
elasticsearch が正常に動作しているかをチェックします。
1 2 3 |
# curl -X GET http://localhost:9200/ |
正常に動作している場合は、json のデータで status 200 が返されるはずです。
Elasticsearch のプラグインをインストール
管理マネージャーの head と 日本語解析の kuromoji のプラグインをインストールします。
1 2 3 4 |
# /usr/share/elasticsearch/bin/plugin -install mobz/elasticsearch-head # /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-analysis-kuromoji/2.1.0 |
その他のプラグインについては、以下を参考。
ElasticsearchのインストールとCSVからのデータ挿入 | EasyRamble
JDBC driver for MySQL をインストール
Java から MySQL に接続するための、JDBC driver for MySQL をインストールします。
1 2 3 |
# yum install mysql-connector-java |
/usr/share/java/ を確認したところ、yum install で自動で mysql-connector-java.jar を作成されていました。
1 2 3 4 5 |
# ls -la /usr/share/java/ | grep mysql 804 -rw-r--r-- 1 root root 819803 6月 22 23:33 2012 mysql-connector-java-5.1.17.jar 0 lrwxrwxrwx 1 root root 31 6月 27 21:22 2014 mysql-connector-java.jar -> mysql-connector-java-5.1.17.jar |
mysql-connector-java.jar のパスを CLASSPATH に追加します。
1 2 3 4 |
# vi /etc/profile.d/mysql-connector-java.sh export CLASSPATH=$CLASSPATH:/usr/share/java/mysql-connector-java.jar |
CLASSPATH を反映させる。
1 2 3 |
# source /etc/profile.d/mysql-connector-java.sh |
Java から MySQL への接続確認
Java から MySQL へ接続できるかを確認します。詳しくは以下を参照。
ElasticsearchにMySQLからデータ挿入、JDBC River Pluginのインストールと使い方 | EasyRamble
JDBC plugin for Elasticsearch をインストール
MySQL から Elasticsearch へデータをインポートさせるプラグインである、JDBC plugin for Elasticsearch(elasticsearch-river-jdbc)をインストールします。
1 2 3 |
# /usr/share/elasticsearch/bin/plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.2.1.1/elasticsearch-river-jdbc-1.2.1.1-plugin.zip |
jdbc プラグインのディレクトリから、mysql-connector-java.jar にシンボリックリンクを張る。
1 2 3 |
# ln -s /usr/share/java/mysql-connector-java.jar /usr/share/elasticsearch/plugins/jdbc/ |
jprante/elasticsearch-river-jdbc
index の schema 設定、データを MySQL からインポート
elasticsearch を再起動後、schema 設定と MySQL からデータのインポートを行います。
1 2 3 |
# service elasticsearch restart |
settings, mappings を書いた elasticsearch の schema を設定します。
1 2 3 4 |
# cd /path/to/schema_file_directory # curl -XPOST 'http://localhost:9200/index_name' -d @schema_file.json |
続いて、MySQL から Elasticsearch の index へデータをインポート。
db_name: DB名
db_user: DBユーザー名
db_password: DBユーザーのパスワード
db_table: DBテーブル名
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# curl -XPUT 'http://localhost:9200/_river/my_jdbc_river/_meta' -d '{ "type" : "jdbc", "jdbc" : { "url" : "jdbc:mysql://localhost:3306/db_name", "user" : "db_user", "password" : "db_password", "sql" : "select * from db_table", "index" : "index_name", "type" : "type_name" } }' |
Elasticsearch のスキーマ設定とインポートの詳細な手順は以下を参照。
ElasticsearchにMySQLからデータ挿入、JDBC River Pluginのインストールと使い方 | EasyRamble
以上で、Elasticsearch のインストールと MySQL からのデータのインポート作業は終了です。
- – 参考リンク –
- Javaからデータベースアクセスする方法 (MySQL)
- Elasticsearch の関連記事
- Rails で jQuery を使って Elasticsearch 全文検索による検索文字をハイライトさせる
- elasticsearch-ruby でトークナイザーを指定してトークン分割
- elasticsearch-ruby で外部入力から検索時の json 用文字列のエスケープ処理
- Elasticsearch を Ruby から使う
- ElasticsearchにMySQLからデータ挿入、JDBC River Pluginのインストールと使い方
- Elasticsearchのクエリとフィルターで簡単な検索を試す例
- ElasticsearchのインストールとCSVからのデータ挿入
Leave Your Message!