本文版權歸博客園和做者吳雙本人共同全部 轉載和爬蟲請註明原文地址 www.cnblogs.com/tdwshtml
1.下載javajava
1 sudo yum install java-1.8.0-openjdk.x86_64 2 java -version 確認安裝結果
2.下載和安裝ESnode
1 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.2.rpm 2 rpm -ivh elasticsearch-5.6.2.rpm
1 systemctl enable elasticsearch
若是你機器內存小,就去/etc/elasticsearch 下 修改jvm.options linux
1 systemctl start elasticsearch //啓動 2 systemctl status elasticsearch //狀態
3.配置ESdocker
nano /etc/elasticsearch/elasticsearch.yml
移除cluster.name和node.name前面的#井號來取消註釋。另外一個重要的配置是服務器角色master或slave。centos
master負責集羣健康和穩定。在大型生產部署環境中一般有不少節點,建議擁有多個專用Master。一般專用master不會存儲數據和建立indexes. 所以通常不會因過載而致使集羣健康受到威脅。服務器
slaves做爲工做機,能夠加載數據任務。即便slave節點過載,集羣健康也不會受到嚴重的影響,其餘節點能夠承擔額外的負載。curl
決定服務器角色的配置乘坐node.master。若是你只有一個ES節點,應該保持其默認值爲true, 即惟一的節點也是master. 若是但願將節點配置爲slave, 取消這行註釋,而且把值修改成false. jvm
node.master: false
另外一個重要的配置項是node.data , 它決定是否存儲數據,在大多數狀況下,此選項應保留默認值true.可是有兩種狀況你也許不但願節點存儲數據,一個是結點做爲專用master,另外一個則是節點僅用於從其餘節點獲取數據並聚合結果的時候,這種狀況也被稱爲 搜索負載平衡器,search load balancer.elasticsearch
再說到若是你只有一個ES節點的話,則應該註釋此配置,並保留其默認true值。不然,爲了禁用數據存儲,則取消該行註釋,並將值修改成false.
node.data: false
另外兩個重要配置項爲index.number_of_shards和index.number_of_replicas 。
前者決定index將會被分割成多少片(shards),第二個決定了在集羣中被分發的副本(replicas)數。有更多的分片shards能夠提升性能,有更多的replicas能夠搜索更快。
若是你仍然在單節點的ES上探索和測試ES。最好從一個shards開始,而後設置無replicas.所以應按照以下設置(請確保取消註釋)
index.number_of_shards: 1
index.number_of_replicas: 0
最後一個你感興趣的應該是修改path.data設置,它決定了數據的存儲路徑。默認設置爲/var/lib/elasticsearch.在生產環境中,建議你使用專用分區和掛載點來存儲數據。在最好的狀況下,專用分區是一個單獨的存儲介質,以提供更好的性能和數據隔離。您能夠經過取消註釋並更改path.data的值,來指定不一樣的路徑:
path.data: /media/different_media
在修改設置後不要忘了 restart es服務。下面使用幾個基礎命令測試一下:
1 curl -X GET 'http://localhost:9200' 2 3 curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d ' 4 { "message": "Hello World!" }' //存點數據 5 6 curl -X GET 'http://localhost:9200/tutorial/helloworld/1' //再獲取下 7 8 curl -X PUT 'localhost:9200/tutorial/helloworld/1?pretty' -d ' 9 { "message": "Hello People!" }' 更新一下 10 11 curl -XGET 'http://localhost:9200/_count?pretty' -d ' { "query": { "match_all": {} } }' //計算文檔數量
雖然弄了兩臺服務器,但感受還不夠,Docker環境安裝ES就比較方便了,正好也能夠藉着docker 開多個es鏡像的容器來學習ES集羣。更多的內容能夠參考docker es文檔 https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docker.html
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.2 //不過個人服務器內存仍是不夠開啓那麼多es,因此在啓動容器實例的時候 設置了512m. docker run -p 9301:9200 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "xpack.security.enabled=false" docker.elastic.co/elasticsearch/elasticsearch:5.6.2