本文版權歸博客園和作者吳雙本人共同所有 轉載和爬蟲請注明原文地址 www.cnblogs.com/tdws
一.linux centos7.x安裝ES
1.下載java
1 sudo yum install java-1.8.0-openjdk.x86_64 2 java -version 確認安裝結果
2.下載和安裝ES
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
1 systemctl start elasticsearch //啟動 2 systemctl status elasticsearch //狀態
3.配置ES
nano /etc/elasticsearch/elasticsearch.yml
移除cluster.name和node.name前面的#井號來取消注釋。另一個重要的配置是服務器角色master或slave。
master負責集群健康和穩定。在大型生產部署環境中通常有很多節點,建議擁有多個專用Master。通常專用master不會存儲數據和創建indexes. 因此一般不會因過載而導致集群健康受到威脅。
slaves作為工作機,可以加載數據任務。即使slave節點過載,集群健康也不會受到嚴重的影響,其他節點可以承擔額外的負載。
決定服務器角色的配置乘坐node.master。如果你只有一個ES節點,應該保持其默認值為true, 即唯一的節點也是master. 如果希望將節點配置為slave, 取消這行注釋,並且把值修改為false.
node.master: false
另一個重要的配置項是node.data , 它決定是否存儲數據,在大多數情況下,此選項應保留默認值true.但是有兩種情況你也許不希望節點存儲數據,一個是結點作為專用master,另一個則是節點僅用於從其他節點獲取數據並聚合結果的時候,這種情況也被稱為 搜索負載平衡器,search load balancer.
再說到如果你只有一個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就比較方便了,正好也可以借着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