LINUX下使用elasticsearch-jdbc工具實現MySQL同步到ElasticSearch 以及linux 64位centos系統安裝jdk1.8

来源:http://www.cnblogs.com/torres-9/archive/2016/08/20/5790998.html
-Advertisement-
Play Games

第一步:環境匹配 1)elasticsearch 2.3.3 成功安裝部署 2)mysql安裝成功,增刪改查無誤~~。 3)要保證elasticsearch-jdbc的版本要與elasticsearch的版本是一致的(下麵的內容會提示下載)。否則會報錯,無法進行之後的步驟。 (例如elasticse ...


第一步:環境匹配

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 64centos下安裝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.

 

(希望能幫助到你們!!~~)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 該系列教程概述與目錄:http://www.cnblogs.com/chengyujia/p/5787111.html 一、繪製三角形 在上一篇文章中,我們已經新建了虛擬方向鍵的自定義控制項DirectionKeys類,下麵我們繼續。 本項目中的虛擬方向鍵的背景是4個三角形組成的矩形,其實是4個三角形 ...
  • 在webView的delegate回調方法 - (void)webViewDidFinishLoad:(UIWebView *)webView;中寫上一下語句即可 //字體大小 [webView stringByEvaluatingJavaScriptFromString:@"document.ge ...
  • 摘要: sybase版本:Sybase15(源端) Oracle版本:11g(目標端) Goldengate版本:11.2.0.1.0(源端),12c(目標端) 個人博客:www.czhiying.cn Goldengate同步原理: Oracle GoldenGate軟體是一種基於日誌的結構化數據 ...
  • Oracle的自動統計信息不收集直方圖的信息 在oracle9i中,預設的統計信息收集是不收集直方圖信息的,也就是說預設的 模式為 在10g開始, 包中預設的 做了調整,預設的 值為 這就說明,從10g開始,統計信息收集中的直方圖部分,收集與否是有oracle自從判斷,從實際的使用來看,oracle ...
  • OLTP:聯機事務處理,表示事務多,但執行大多較短,併發量大的資料庫,如日常的進銷存操作等; OLAP: 聯機分析處理,表示事務較少,但執行大多較長,併發量較小的資料庫,如基於數據倉庫的操作; OLTP 系統強調資料庫記憶體效率,強調記憶體各種指標的命令率,強調綁定變數,強調併發操作;OLAP 系統則強 ...
  • 自Oracle 11g起,無需設置UTL_FILE_DIR就可以使用LOGMNR對本地資料庫的日誌進行分析,以下是使用LOGMNR的DICT_FROM_ONLINE_CATALOG分析REDO和歸檔日誌的步驟 ...
  • ...
  • Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 1. 包中作用域種類說明以及聲明位置 a. publish、private、locavariable 三種類型,當然每種類型包括了變數、函數、類型等。 b. publish類聲明在非包 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...