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檢視結果如下: