1. 程式人生 > 其它 >Cent OS7 安裝ES7單機版和叢集版

Cent OS7 安裝ES7單機版和叢集版

ElasticSearch 環境搭建

1. 單機、叢集和節點概念。

1.1單機

單機ElasticSearch伺服器提供服務,往往都有最大的負載能力,超過這個閾值,伺服器效能就會大大降低甚至不可用。因此在生產環境下,一般都是執行在指定伺服器叢集上。

除了負載能力,單點伺服器也存在其他問題:

  • 單臺機器儲存容量有限
  • 單伺服器容易出現單點故障,無法實現高可用
  • 單伺服器的併發處理能力有限

配置伺服器叢集時,叢集中節點數量沒有限制,大於等於 2 個節點就可以看做是叢集了。一 般出於高效能及高可用方面來考慮叢集中節點數量都是 3 個以上。

1.2 叢集

一個叢集就是由一個或多個伺服器節點組織在一起,共同持有整個的資料,並一起提供

索引和搜尋功能。一個 Elasticsearch 叢集有一個唯一的名字標識,這個名字預設就 是”elasticsearch”。這個名字是重要的,因為一個節點只能通過指定某個叢集的名字,來加入 這個叢集。

1.3 節點

叢集中包含很多伺服器,一個節點就是其中的一個伺服器。作為叢集的一部分,它儲存資料,參與叢集的索引和搜尋功能。

一個節點可以通過配置叢集名稱的方式來加入一個指定的叢集。預設情況下,每個節點 都會被安排加入到一個叫做“elasticsearch”的叢集中,這意味著,如果你在你的網路中啟動了 若干個節點,並假定它們能夠相互發現彼此,它們將會自動地形成並加入到一個叫做 elasticsearch

的叢集中。

在一個叢集裡,只要你想,可以擁有任意多個節點。而且,如果當前你的網路中沒有運 行任何 Elasticsearch 節點,這時啟動一個節點,會預設建立並加入一個叫做“elasticsearch”的 叢集。

2. Linux單機版的安裝

可以採用安裝tar.gz的方式,也可以採用rpm的方式進行,推薦使用rpm方式,註冊到系統服務中,方便啟動和停止。

2.1 安裝tar.gz包

軟體下載地址

解壓軟體

tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz -C /usr/local/

修改配置檔案

/usr/local/elasticsearch-7.4.2/config
vi elasticsearch.yml
# 加入如下配置
# 修改當前節點名稱
cluster.name: elasticsearch
# 修改叢集名稱
node.name: node-1
# 修改data資料儲存地址
path.data=/usr/local/elasticsearch-7.4.2/data
# 修改log資料儲存地址
path.log=usr/local/elasticsearch-7.4.2/log
# 修改ip允許訪問地址
network.host: 0.0.0.0
# 修改訪問埠
http.port: 9200 
# 叢集初始化節點
cluster.initial_master_nodes: ["node-1"]

修改JVM引數

-Xms128m
-Xmx256m

建立使用者

因為安全問題,Elasticsearch 不允許 root 使用者直接執行,所以要建立新使用者。

# 新增esuser使用者
useradd esuser
# 賦權
chown -R esuser:esuser /usr/local/elasticsearch-7.4.2/

修改 /etc/security/limits.conf

# 每個程序可以開啟的檔案數的限制
* soft nofile 65536
* hard nofile 131072
# 作業系統級別對每個使用者建立的程序數的限制
* soft nproc 2048
* hard nproc 4096

修改/etc/sysctl.conf

# 在檔案中增加下面內容
# 一個程序可以擁有的 VMA(虛擬記憶體區域)的數量,預設值為 65536 
vm.max_map_count=655360

重新載入

sysctl -p

啟動軟體

su esuser
# 進入$ES_HOME/bin
cd /usr/local/elasticsearch-7.4.2/bin
# 後臺啟動es
./elasticsearch -d

測試啟動是否正常

訪問虛擬機器ip+埠9200.顯示如圖則正常

停止服務

# 查詢es服務
ps -ef |grep elastic
# 殺掉es程序
kill -9 xxx(程序號)

2.2 安裝rpm包

下載地址同上,選擇rpm包

rpm -ivh elasticsearch-7.6.2.rpm

修改配置檔案

# 加入如下配置
# 修改當前節點名稱
cluster.name: elasticsearch
# 修改叢集名稱
node.name: node-1
# 修改data資料儲存地址
path.data=/usr/local/elasticsearch-7.4.2/data
# 修改log資料儲存地址
path.log=usr/local/elasticsearch-7.4.2/log
# 修改ip允許訪問地址
network.host: 0.0.0.0
# 修改訪問埠
http.port: 9200 
# 叢集初始化節點
cluster.initial_master_nodes: ["node-1"]

修改檔案所有者

chown elasticsearch:elasticsearch -R /usr/local/elasticsearch-7.4.2/

啟動elasticsearch

 systemctl start elasticsearc

檢視es啟動狀態

systemctl status elasticsearch

如果從系統服務不太容易觀察到啟動失敗錯誤資訊,也可以先通過安裝路徑啟動es

/usr/share/elasticsearch/bin/elasticsearch

2.3 Linux叢集版搭建

與單機版基本相同,只是配置檔案略有不同

#叢集名稱
cluster.name: cluster-es #節點名稱,每個節點的名稱不能重複 node.name: node-1
#ip 地址,每個節點的地址不能重複
network.host: node107 #是不是有資格主節點 node.master: true node.data: true http.port: 9200
# head 外掛需要這開啟這兩個配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
#es7.x 之後新增的配置,初始化一個新的叢集時需要此配置來選舉 master cluster.initial_master_nodes: ["node-1"]
#es7.x 之後新增的配置,節點發現
discovery.seed_hosts: ["node107:9300","node108:9300","node109:9300"] 
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
#叢集內同時啟動的資料任務個數,預設是 2 個 cluster.routing.allocation.cluster_concurrent_rebalance: 16 #新增或刪除節點及負載均衡時併發恢復的執行緒個數,預設 4 個 cluster.routing.allocation.node_concurrent_recoveries: 16 #初始化資料恢復時,併發恢復執行緒的個數,預設 4 個 cluster.routing.allocation.node_initial_primaries_recoveries: 16

Status 指示當前叢集在總體上是否正常工作。三種顏色含義如下

顏色 含義
green 所有的主分片和副本分片都正常工作
yellow 所有的主分片都正常執行,但不是所有的副本分片都正常執行
red 有主分片沒有正常執行