版权声明:本文为博主原创文章,转载请注明出处 浅然的专栏 https://blog.csdn.net/w_linux/article/details/84555506
一、场景
笔者最近在写全文搜索引擎服务,用到的是ElasticSearch框架,该篇博客就如何实现MySQL数据同步到ES中进行阐述
二、解决方案
运行系统:mac系统下
采用到的技术:ES2.4、logstash-2.4.1
用到的相关插件:ES-head、logstash-input-jdbc、logstash-output-elasticsearch
其安装该篇博客就不多做阐述。
读者安装完以上的相关插件后,进入logstash-2.4.1目录下,创建config文件夹,在config文件夹下创建logstash-mysql.conf并下载mysql-connector-java-5.1.39.jar包如图(还有:再创建个logs目录,来放日志)
logstash-mysql.conf中的内容如下
input {
jdbc {
jdbc_driver_library => "./config/mysql-connector-java-5.1.39.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
# 数据库相关配置
jdbc_connection_string => "jdbc:mysql://localhost:3306/wcspider?characterEncoding=UTF-8&useSSL=false"
jdbc_user => "root"
jdbc_password => "1111"
statement => "SELECT * FROM shiyuemami limit 0,1"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
schedule => "* * * * *"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "localhost"
#将mysql数据加入myindex索引下,会自动创建
index => "myindex"
}
}
完成后,记得启动es : brew services start [email protected]
然后进入logstash-2.4.1目录下:输入命令:nohup bin/logstash -f config/logstash-mysql.conf > logs/logstash.out &
如果要停止该文件运行,可以直接kill掉进程,进程号会在执行上面的命令时打印出来
扫描二维码关注公众号,回复:
4531558 查看本文章
可以看到logs目录下生成logstash.out
打开logstash.out会看到同步到es的相关数据
打开http://localhost:9200/_plugin/head/,可以看到数据已经同步到es中了