https://www.elastic.co/downloads/past-releasesnode
選擇要下載的版本,由於從6.0開始有比較大的變更,全部仍是選擇了5.x的版本,我選擇的是5.6.4版本。git
es_downgithub
Es_dirnpm
我想要在一臺機器上部署3個實例,因此複製了2個,共有3個es目錄(目錄的名字已經修改了,也能夠不用修改)。Head是head插件,後面一點介紹。Readme是本身添加的一些注意事項,能夠不要。cors
Es_datajvm
複製的時候注意,如上圖所示,若是原來已經運行過,也就是data目錄下有nodes目錄,新複製的es必須先刪除nodes目錄,不然啓動會出錯。elasticsearch
Config_dirtcp
主要是elasticsearch.yml和jvm.options配置文件,下面主要介紹一些elasticsearch.yml配置,這個文件主要配置的是es相關的。spa
http.port配置是elasticsearch對外提供服務的http端口配置,默認狀況下ES會取用9200~9299之間的端口,若是9200被佔用就會自動使用9201,在單機多實例的配置中這個配置實際是不須要修改的。插件
transport.tcp.port配置指定了elasticsearch集羣內數據通信使用的端口,默認狀況下爲9300,與上面的http.port配置相似, ES也會自動爲已佔用的端口選擇下一個端口號。咱們能夠將第一個實例的tcp傳輸端口配置爲9300,第二實例配置爲9301
注意:上面2個端口會自動選擇下一個端口的前提條件是,沒有顯示配置這2個端口
node.max_local_storage_nodes配置限制了單節點上能夠開啓的ES存儲實例的個數,由於咱們想要在一臺機器上啓動3個實例,因此配置爲3
# http.port: 9200
# transport.tcp.port: 9300
# network.host: 127.0.0.1
node.max_local_storage_nodes: 3
cluster.name: es_cluster
node.name: es_node1
node.master: true
# head 插件須要配置,不然會出現未鏈接
http.cors.enabled: true
http.cors.allow-origin: "*"
Mem
如上圖所示,一個es實例大概須要1.35G的樣子,由於es默認初始化須要的內存配置爲2g,又由於本身的機器內存有限,因此須要修改一下es啓動的jvm參數,jvm參數配置在jvm.options文件之中。只須要修改一個參數就能夠了,-Xms表明的是初始化內存,-Xmx是最大內存。由於不能配置小數,因此把-Xms初始化內存配置爲1g就能夠了。
-Xms1g
-Xmx2g
Head 插件運行環境須要nodejs,因此先下載nodejs安裝
https://nodejs.org/en/download/
在github上下載head插件
https://github.com/mobz/elasticsearch-head/
head的文檔已經說的很清楚了,基本就按下面步驟來就能夠了,一下其餘的細節能夠看head的readme文件。
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
Head-dir
Es5.x依賴jdk8.0及以上的版本,因此先要安裝jdk8及以上的版本。還須要配置JAVA_HOME,就是到bin目錄的的父目錄。
Bin_dir
若是一切配置沒有問題的話,在Windows下能夠直接運行elasticsearch.bat啓動es。
Cluster
若是head已經啓動了就能夠直接訪問http://localhost:9100/,而後鏈接http://localhost:9200/就能夠看到集羣相關的信息,執行一些簡單的操做。