LINUX下使用elasticsearch-jdbc工具實現MySQL同步到ElasticSearch 以及linux 64位centos系統安裝jdk1.8
標籤:
第一步:環境匹配
1)elasticsearch 2.3.3 成功安裝部署
2)mysql安裝成功,增刪改查無誤~~。
3)要保證elasticsearch-jdbc的版本要與elasticsearch的版本是一致的(下面的內容會提示下載)。否則會報錯,無法進行之後的步驟。
(例如elasticsearch-jdbc-2.3.3.0-dist.zip(對應的你的elaseticsearh-2.3.3)
4)(linux 64位centos下安裝jdk1.8)(我的是CentOS release 6.5 (Final) )
推薦JDK的版本為1.8最好(我一開始是1.7的報錯)--Exception in thread "main" java.lang.UnsupportedClassVersionError: org/xbib/tools/Runner : Unsupported major.minor version 52.0
因為jdk 1.7版本是version 51 而1.6 的是version 50 因此需要安裝1.8的版本(version 52)為最佳。否則還沒有開始就已經結束了!!!~~
rpm -qa|grep jdk //檢查之前的版本
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 //之前的版本
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 //刪除它
下載jdk
網址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
選擇
選中Accept License Agreement, 然後打相應的版本點選下載,在這裡只介紹原始碼安裝
centos下安裝jdk1.8
1.解壓檔案
tar -zxvf jdk-8u101-linux-x64.tar.gz
2.把解壓的檔案目錄移動到/usr/local下
mv jdk1.8.0_101 /usr/local
3.配置環境變數
vi /etc/profile
放在最後即可
#set java JDK
export JAVA_HOME=/usr/local/jdk1.8.0_101/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
4.使profile馬上生效:
source /etc/profile
5.檢查配置是否成功
java -version
第二步:下載JDBC工具
選擇你需要的版本進行下載。(例如elasticsearch-jdbc-2.3.3.0-dist.zip(對應的你的elaseticsearh-2.3.3) ,下載字尾為dist.zip的即可)
地址:
http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/
第三步:匯入linux下的目錄
解壓下載的檔案unzip elasticsearch-jdbc-2.3.3.0-dist.zip (也可以windows下解壓好再匯入Linux下就無需此條命令了,推薦工具winscp(用它可以把檔案在windows與Linux兩個平臺間互相拖動資料哦),玩linux必備的工具 還有xshell(用法的話自己摸索百度一下咯~~!))
我放在預設的根目錄下:/elasticsearch-jdbc-2.3.3.0
第四步:同步匯入資料的關鍵,新建指令碼
cd /elasticsearch-jdbc-2.3.3.0/bin/ (在bin目錄下建立我們的新指令碼)
vi import_es.sh
#!/bin/sh
bin=/elasticsearch-jdbc-2.3.3.0/bin
lib=/elasticsearch-jdbc-2.3.3.0/lib
echo ‘{
"type" : "jdbc",
"jdbc": {
"elasticsearch.autodiscover":true,
"elasticsearch.cluster":"ffcs-test",叢集名字:#預設elasticsearch, 詳見elasticsearch.yml
"url":"jdbc:mysql://localhost:3306/test", #mysql資料庫地址,3306是預設埠,test是資料庫名
"user":"root", #mysql使用者名稱
"password":"123456", #mysql密碼
"sql":"select * from ffcs", #ffcs是資料庫表名
"index" : "test", #自定義索引名
"type" : "ffcs" #自定義型別名
}
}‘ | java \
-cp "${lib}/*" \
-Dlog4j.configurationFile=${bin}/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter
注:複製時其中的#漢字不能複製進去,否則會出現各種莫名狀況
之後可以把你寫的json內容到www.json.cn驗證是夠正確,若不正確後面又會報錯啦
{
"type" : "jdbc",
"jdbc": {
"elasticsearch.autodiscover":true,
"elasticsearch.cluster":"ffcs-test",
"url":"jdbc:mysql://localhost:3306/test",
"user":"root",
"password":"123456",
"sql":"select * from ffcs",
"index" : "test",
"type" : "ffcs"
}
}
就是上面的內容 去網站上解析檢檢視看你自己寫的是否有錯誤,避免執行指令碼的時候出現不必要的錯誤
為 import_es.sh 新增可執行許可權。
chmod a+x import_es.sh //(a+x 是給所有人加上可執行許可權,包括所有者,所屬組,和其他人 o+x 只是給其他人加上可執行許可權)
執行指令碼:./import_es.sh
第五步:檢測資料是否新增成功
curl ‘localhost:9200/_cat/indices?pretty‘ //索引是否有新增呢??
curl -XGET ‘http://localhost:9200/test/ffcs/_search?pretty‘ //抓取顯示資料
通過各種條件查詢
curl ‘localhost:9200/test/ffcs/_search?pretty‘ -d ‘
{
"filter":{"term":{"name":"john"}}
}‘
curl ‘localhost:9200/test/ffcs/_search?pretty‘ -d ‘
{
"filter":{"term":{"id":"5"}}
}‘
以上都可以就說明你大功告成了哦~~
我之前也嘗試過elasticsearch-1.7.1的版本結果出現錯誤
[ERROR][importer.jdbc.source.standard][pool-2-thread-1] while opening read connection: jdbc:mysql://localhost:3306/test No suitable driver found for jdbc:mysql://localhost:3306/test
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
找不到適合的驅動。。。
這樣的情況的話index和type都可以成功建立~,可是裡面是沒資料的哦~~NULL.
(希望能幫助到你們!!~~)
來源:http://www.mamicode.com/info-detail-1492805.html
相關文章
- ElasticSearch(五) Elasticsearch-jdbc實現MySQL同步到ElasticSearchElasticsearchJDBCMySql
- Linux(CentOS)安裝JDK1.8LinuxCentOSJDK
- centos/linux下的安裝mysqlCentOSLinuxMySql
- linux下安裝jdk1.8LinuxJDK
- Linux 下安裝JDK1.8LinuxJDK
- linux下安裝elasticsearchLinuxElasticsearch
- Linux系統安裝——Centos 7.6安裝LinuxCentOS
- Linux系統下載mysql與安裝LinuxMySql
- Linux環境下elasticsearch-6.2.2安裝以及配置LinuxElasticsearch
- Linux下安裝使用MySQLLinuxMySql
- Mysql--Linux系統下mysql 5.5.31安裝MySqlLinux
- Linux系統安裝01-centos7系統安裝LinuxCentOS
- Linux下jdk1.8的下載安裝LinuxJDK
- Linux系統安裝(CentOS6)LinuxCentOS
- Linux安裝SVN實現自動同步到Web目錄LinuxWeb
- 如何在Linux系統安裝檔案同步工具:FreeFileSync?Linux
- linux centos下安裝redisLinuxCentOSRedis
- Linux系統下安裝使用anaconda教程。Linux
- Linux安裝JDK1.8LinuxJDK
- [linux]linux下安裝mysqlLinuxMySql
- Linux CentOS安裝Azure Cli工具LinuxCentOS
- Linux CentOS6.5下編譯安裝MySQL 5.6LinuxCentOS編譯MySql
- ElasticSearch(二)CentOs6.4下安裝ElasticSearchElasticsearchCentOS
- mysql linux下安裝MySqlLinux
- Linux下Mysql安裝LinuxMySql
- linux 下安裝mysqlLinuxMySql
- linux下安裝MysqlLinuxMySql
- MySQL-01.Linux下MySQL安裝和使用MySqlLinux
- CentOS7 下安裝 ElasticsearchCentOSElasticsearch
- 一種Mysql和Mongodb資料同步到Elasticsearch的實現辦法和系統MySqlMongoDBElasticsearch
- centos/linux下的安裝gitCentOSLinuxGit
- centos/linux下的安裝NginxCentOSLinuxNginx
- Centos/linux下的JDK安裝CentOSLinuxJDK
- Linux(CentOS) 下安裝Redis (一)LinuxCentOSRedis
- linux下安裝snap安裝工具Linux
- Linux下安裝、解除安裝mysqlLinuxMySql
- VirtualBox下安裝Linux系統Linux
- Linux Centos上安裝 MySQL 8.0.16LinuxCentOSMySql