实现MySQL数据同步到ElasticSearch中

版权声明:本文为博主原创文章,转载请注明出处 浅然的专栏 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掉进程,进程号会在执行上面的命令时打印出来

可以看到logs目录下生成logstash.out

打开logstash.out会看到同步到es的相关数据

打开http://localhost:9200/_plugin/head/,可以看到数据已经同步到es中了

猜你喜欢

转载自blog.csdn.net/w_linux/article/details/84555506