1. 程式人生 > >Windows環境下安裝ElasticSearch以及head外掛

Windows環境下安裝ElasticSearch以及head外掛

一、首先簡單瞭解一下Elasticsearch:
       Elasticsearch是一個基於Apache Lucene(TM)的開源實時分散式搜尋和分析引擎,它用於全文搜尋、結構化搜尋、分析以及將這三者混合使用,無論在開源還是專有領域,Lucene可以被認為是迄今為止最先進、效能最好的、功能最全的搜尋引擎庫。

二、下載安裝Elasticsearch

      Elasticsearch基於java jdk, es5.x已經基於lucene6.x版本,lucene6.x版本需要jdk1.8以上的支援,自然es5.x也需要1.8版本的jdk了. 

 1、下載安裝jdk1.8

      下載安裝jdk1.8參見https://www.cnblogs.com/smyhvae/p/3788534.html

 2、下載Elasticsearch

      我這裡下載的是https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.zip

      下載完成後解壓在G:\bigdata\elasticsearch-5.2.0

       修改G:\bigdata\elasticsearch-5.2.0\config\elasticsearch.yml 需要將#去掉

       節點名稱  node.name: node-104 

       網路IP   network.host: 0.0.0.0 修改為0.0.0.0可以支援外部網路訪問

       埠地址  http.port: 9200

       增加四個選項支援Elasticsearch head管理

              http.cors.enabled: true 
              http.cors.allow-origin: "*"
              node.master: true
              node.data: true

   

3、啟動Elasticsearch

     在G:\bigdata\elasticsearch-5.2.0\bin 直接執行elasticsearch

     開始cmd,輸入G:進入G盤, cd 目錄

     

     正常執行的如下

      

        瀏覽器裡輸入localhost:9200測試下: 

        

        至此ElasticSearch 執行成功

三、下載安裝ElasticSearch   head外掛

        head在es2.X及以前是作為es的一個外掛存在的,可以直接通過plugin命令安裝,5.x及以後需要作為一個單獨的服務執行,基於nodejs環境及grunt啟動服務。

1、下載安裝nodejs

開啟官網下載連結:https://nodejs.org/en/download/ 我這裡下載的是node-v6.9.2-x64.msi,如下圖:

 

安裝過程為一路next,需要注意的是安裝型別需要選擇

安裝完成後檢驗

2、安裝grunt

 使用npm安裝grunt     

  npm install -g grunt -cli

3、下載 ElasticSearch-head  下載地址:https://github.com/mobz/elasticsearch-head,下載後解壓縮到G:\bigdata\elasticsearch-5.2.0\目錄下

4、修改head原始碼(也可以不修改,直接跳過這一步)
由於head的程式碼還是2.6版本的,直接執行有很多限制,比如無法跨機器訪問。因此需要使用者修改兩個地方:

目錄:head/Gruntfile.js:

connect: {
    server: {
        options: {
            port: 9100,
            hostname: '*',
            base: '.',
            keepalive: true
        }
    }
}

增加hostname屬性,設定為*

修改連線地址: 
目錄:head/_site/app.js

修改head的連線地址:

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
把localhost修改成你es的伺服器地址

5、npm安裝依賴
到elasticsearch-head-master目錄下,執行命令:

npm install
如果速度較慢或者安裝失敗,可以使用國內映象: 
建議使用這種方式,速度更快

npm install -g cnpm --registry=https://registry.npm.taobao.org
初次執行安裝可能會報警告或錯誤。可以重新執行一次npm install。

最後,在head原始碼目錄下啟動

npm run start


6、網頁訪問

四、elasticsearch叢集設定

elasticsearch支援叢集,實現叢集只需要修改配置檔案elasticsearch.yml即可

這裡採用兩臺電腦192.168.1.104和192.168.1.108分別執行elasticsearch

第一臺電腦的配置

#配置檔案中未改動的位置我就不展示了
#第一個配置檔案改動如下
#叢集名稱(必須一樣)
cluster.name: zjs-application
#節點名稱(必須不一樣)
node.name: node-104
#本機的IP地址 可以是本機ip 也可以設定成0.0.0.0(本地獲取)
network.host: 0.0.0.0
#服務的埠號
http.port: 9200
#服務發現埠 用做服務之間相互發現
transport.tcp.port: 9300
#叢集發現IP集合
discovery.zen.ping.unicast.hosts: ["192.168.1.104:9300", "192.168.1.108:9300"]
#elasticsearch-head能夠訪問elasticsearch選項
http.cors.enabled: true 
http.cors.allow-origin: "*"

第二臺電腦的配置

#第二個配置檔案改動如下
#叢集名稱(必須一樣)
cluster.name: zjs-application
#節點名稱(必須不一樣)
node.name: node-108
#本機的IP地址 可以是本機ip 也可以設定成0.0.0.0(本地獲取)
network.host: 0.0.0.0
#服務的埠號
http.port: 9200
#服務發現埠 用做服務之間相互發現
transport.tcp.port: 9300
#叢集發現IP集合
discovery.zen.ping.unicast.hosts: ["192.168.1.104:9300", "192.168.1.108:9300"]
#elasticsearch-head能夠訪問elasticsearch選項
http.cors.enabled: true 
http.cors.allow-origin: "*"

可以看出只有node.name不一樣其他的都可以一樣

重新執行elasticsearch

採用elasticsearch head檢視結果如下: