Windows下elasticsearch安裝並且同步數據庫

鏈接:https://pan.baidu.com/s/1xuKhptYIlUrIHzn6QihTNg 
提取碼:v64e 
複製這段內容後打開百度網盤手機App,操作更方便哦

1、安裝下載elasticsearch

首先要安裝有Java環境,沒有請先自行安裝

然後去官網下載https://www.elastic.co/cn/downloads/elasticsearch

2、運行elasticsearch

下載完解壓即可:直接雙擊/bin/ElasticSearch.bat

瀏覽器輸入:http://127.0.0.1:9200 查看效果

修改一下config/elasticsearch.yml配置文件,修改後重啓

3、下載nodejs

還沒安裝的,請看官方教程https://www.runoob.com/nodejs/nodejs-install-setup.html

到安裝node.js的目錄下,輸入欄中輸入cmd即可進入cmd命令操作符界面:

cmd 輸入  npm install -g grunt-cli

cmd 輸入 grunt -version

如果此時報錯“grunt不是內部或外部命令,也不是可運行的程序 或批處理文件”,

解決方案:

①進入C:\Users\Administrator\AppData\Roaming\npm,將此路徑添加到環境變量PATH中。然後重新打開輸入,依舊報錯請執行第②步

②進入nodejs安裝目錄,將如下文件複製到C:\Users\Administrator\AppData\Roaming\npm;然後進入nodejs的node_global目錄,將grunt-cli和npm文件夾整體複製到C:\Program Files\nodejs\node_global\node_modules中。

重新打開輸入命令即可

4、下載elasticsearch-head

修改文件Gruntfile.js

找到connect,複製下面數據替換原始數據

同樣輸入框:cmd 到該目錄

輸入命令  npm install  回車執行

輸入  npm run start 啓動服務

瀏覽器中輸入:http://localhost:9100 查看

另一種方式:打開翻牆工具(本人之前用的翻牆工具所連接的服務器已經過期,所以請自行解決),進入Chrome瀏覽器插件中心,搜索elasticsearch-head,然後安裝,打開之後的效果是一樣的【推薦使用這個,簡單快捷】

5、下載logstash

網址https://www.elastic.co/cn/downloads/logstash

解壓,進入bin目錄,創建bin文件夾(本例子爲bin,命名沒有要求),jdbc.sql,logstash.conf文件

bin 文件夾放數據庫連接包

jdbc.sql 文件放入sql語句

logstash.conf文件輸入以下內容

input {
    stdin {
    
    }
    jdbc {
       # mysql 數據庫鏈接
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # 用戶名和密碼
      jdbc_user => "root"
      jdbc_password => "123456"
      # 驅動 修改爲mysql連接包位置
      jdbc_driver_library => "F:\wzn\elasticsearch\logstash-6.8.1\bin\bin\mysql-connector-java-5.1.7-bin.jar"
      # 驅動類名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
#你的SQL的位置,當然,你的SQL也可以直接寫在這裏。
      #statement => select * from aaa
      # 執行的sql 文件路徑+名稱 
      statement_filepath => "jdbc.sql"
      # 設置監聽間隔  各字段含義(由左至右)分、時、天、月、年,全部爲*默認含義爲每分鐘都更新
      schedule => "* * * * *"
    }
}
output {
    elasticsearch {
        # ES的IP地址及端口
        hosts => ["localhost:9200"]
        # 索引名稱 可自定義
        index => "test02"
        # 需要關聯的數據庫中有有一個id字段,對應類型中的id
        document_id => "%{id}"
        document_type => "test02"
    }
    stdout {
        # JSON格式輸出
        codec => json_lines
    }
}

logstash.conf更多配置詳情請看https://yq.aliyun.com/articles/152043

cmd輸入  logstash -f logstash.conf

注意:此工具不能停止運行,一旦停止運行,則無法實時同步數據庫的數據!

補充:

①多sql語句配置

#如果要同步數據庫多個表,需要添加多個jdbc{},因爲一個jdbc只能執行一條sql語句
	jdbc {
      # mysql 數據庫鏈接
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # 用戶名和密碼
      jdbc_user => "root"
      jdbc_password => "123456"
      # 驅動 修改爲mysql連接包位置
      jdbc_driver_library => "F:\wzn\elasticsearch\logstash-6.8.1\bin\bin\mysql-connector-java-5.1.7-bin.jar"
      # 驅動類名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
	  #你的SQL的位置,當然,你的SQL也可以直接寫在這裏。
      #statement => select * from aaa
      # 執行的sql 文件路徑+名稱 
      statement_filepath => "jdbc1.sql"
      # 設置監聽間隔  各字段含義(由左至右)分、時、天、月、年,全部爲*默認含義爲每分鐘都更新
      schedule => "* * * * *"
    }

②多數據源配置(Oracle、SqlServer)

#如果要同步多個數據源,需要添加多個jdbc{}
	jdbc {
      # mysql 數據庫鏈接,mybatis爲數據庫名
      jdbc_connection_string => "jdbc:oracle:thin:@127.0.0.1:1521:test"
      # 用戶名和密碼
      jdbc_user => "root"
      jdbc_password => "123456"
      # 驅動 修改爲mysql連接包位置
      jdbc_driver_library => "F:\wzn\elasticsearch\logstash-6.8.1\bin\bin\ojdbc6.jar"
      # 驅動類名
      jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
	  #你的SQL的位置,當然,你的SQL也可以直接寫在這裏。
      #statement => select * from aaa
      # 執行的sql 文件路徑+名稱 
      statement_filepath => "jdbc2.sql"
      # 設置監聽間隔  各字段含義(由左至右)分、時、天、月、年,全部爲*默認含義爲每分鐘都更新
      schedule => "* * * * *"
    }
#如果要同步多個數據源,需要添加多個jdbc{}
	jdbc {
      # mysql 數據庫鏈接,mybatis爲數據庫名
      jdbc_connection_string => "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test;"
      # 用戶名和密碼
      jdbc_user => "sa"
      jdbc_password => "123456"
      # 驅動 修改爲mysql連接包位置
      jdbc_driver_library => "F:\wzn\elasticsearch\logstash-6.8.1\bin\bin\mssql-jdbc-7.0.0.jre8.jar"
      # 驅動類名
      jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
	  #你的SQL的位置,當然,你的SQL也可以直接寫在這裏。
      #statement => select * from aaa
      # 執行的sql 文件路徑+名稱 
      statement_filepath => "jdbc3.sql"
      # 設置監聽間隔  各字段含義(由左至右)分、時、天、月、年,全部爲*默認含義爲每分鐘都更新
      schedule => "* * * * *"
    }

6、啓動步驟

啓動elasticsearch,雙擊elasticsearch.bat

啓動elasticsearch-head,cmd輸入npm run start

啓動logstash,cmd輸入logstash -f logstash.conf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章