一:说明
elasticsearch 版本用的是2.3.3的,根据个人的不同版本,下载对应的插件。插件下载地址和详细说明见 https://github.com/jprante/elasticsearch-jdbc
二:步骤
1:下载插件,解压步骤(省略)
2:配置环境变量
export JDBC_IMPORTER_HOME=/opt/soft/elasticsearch-jdbc-2.3.3.0
3:搭建好对应的MySQL数据库,建好要同步的表
4:在bin目录下复制一个脚本,脚本配置如下
#!/bin/sh
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
bin=${DIR}/../bin
lib=${DIR}/../lib
echo '
{
"type" : "jdbc",
"jdbc" : {
"schedule" : "0-59 0-59 0-23 ? * *",
"elasticsearch.autodiscover":true,
"url" : "jdbc:mysql://localhost:3306/krebons",
"user" : "",
"password" : "",
"sql" : "select *, id as _id, \"myjdbc\" as _index, \"mytype\" as _type from user",
"elasticsearch" : {
"cluster" : "my-application",
"host" : "localhost",
"port" : 9300
},
"index" : "myjdbc",
"type" : "mytype",
"index_settings" : {
"index" : {
"number_of_shards" : 1
}
},
"metrics" : {
"enabled" : true
}
}
}
' | java \
-cp "${lib}/*" \
-Dlog4j.configurationFile=${bin}/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter
5:启动脚本就可以啦。往数据库插入数据,看es中是否已经同步啦
注意点:
1:脚本启动跟es一样不能用root用户
2:cluster" : "my-application", 要和es配置一致喔
3:这个插件好强大呀,数据库可以动态添加字段,但增过再删就不可以啦