elasticSearch5.x与mysql数据库同步
ElasticSearch安裝就不說了上一篇有說!
安裝logstash
官方:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
1.下載公共密鑰
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch2.添加yum源
vim /etc/yum.repos.d/logstash.repo文件中寫入
[logstash-5.x] name=Elastic repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md保存退出
3.使用yum安裝
yum install logstash4.驗證是否安裝成功
進入?logstash 安裝目錄
cd /usr/share/logstash運行
bin/logstash -e 'input { stdin { } } output { stdout {} }'等待幾秒鐘 出現 ?
The stdin plugin is now waiting for input:
然后輸入?
hello world得到類似的結果
2016-11-24T08:01:55.949Z bogon hello world
安裝logstash-input-jdbc插件
1.修改ruby倉庫鏡像
如果沒有安裝 gem 的話 安裝gem?
yum install gem替換國內的鏡像
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/驗證是否成功
gem sources -l修改Gemfile的數據源地址
whereis?logstash?#?查看logstash安裝的位置,?我的在?/usr/share/logstash目錄 cd /usr/share/logstash vim Gemfile 修改?source?的值?為:?"https://gems.ruby-china.org/" vim Gemfile.jruby-1.9.lock # 找到 remote 修改它的值為:https://gems.ruby-china.org/或者直接替換源這樣你不用改你的 Gemfile 的 source。
gem install bundler$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org/然后開始安裝
bin/logstash-plugin install logstash-input-jdbc如果鏡像地址沒有改錯的話應該可以直接安裝
或者 ?進入源碼地址的release頁面logstash-input-jdbc
2.開始同步 mysql 數據
需要建立 兩個文件 ?一個 ?.conf后綴的 一個 .sql 后綴
?一個 mysql 的Java?驅動包 ?:?mysql-connector-java-5.1.40-bin.jar
filename.conf 內容:
里面的參數可以參考?logstash-input-jdbc官方參考文檔
input {stdin {}jdbc {# 數據庫地址 端口 數據庫名jdbc_connection_string => "jdbc:mysql://localhost:3306/shen"# 數據庫用戶名 jdbc_user => "root"# 數據庫密碼jdbc_password => "rootroot"# mysql java驅動地址 jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.40-bin.jar"jdbc_driver_class => "com.mysql.jdbc.Driver"jdbc_paging_enabled => "true"jdbc_page_size => "50000"# sql 語句文件statement_filepath => "filename.sql"schedule => "* * * * *"type => "jdbc"} } output {stdout {codec => json_lines}elasticsearch {hosts => "localhost:9200"index => "contacts"document_type => "contact"document_id => "%{id}"} }filename.sql
select * from a注意: 在你的數據庫里 要有一個數據庫名字和filename.conf 里的對應就可以了 ? 表明 和 filename.sql 里的對應就可以了 ? 在表中 ?有一個id字段是為了和filename.conf ?中document_id => "%{id}" 這個參數對應 可以執行修改
然后開始執行
bin/logstash -f fielname.conf如果出現錯誤 或者沒有結果 可以進入 logs 目錄中查看日志
出現類似這樣的內容 ?就可以了
可以通過地址?http://192.168.199.115:9200/contacts/contact/1?pretty=true
查看
url 參數說明 ?contacts 是對應?filename.conf 中?index => "contacts"? contact 對應document_type => "contact" ? 1表示id為1 的數據
?
?本文轉載自 http://www.cnblogs.com/phpshen/p/6098333.html
總結
以上是生活随笔為你收集整理的elasticSearch5.x与mysql数据库同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 幂等和高并发在电商系统中的使用
- 下一篇: Linux下将mysql数据导入与导出