linux下安裝Elasticsearch(單機版和叢集版)
阿新 • • 發佈:2022-05-30
一、linux下安裝Elasticsearch(單機)
1、軟體下載
下載地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
2、軟體安裝
-
將下載的軟體上傳到linux中並解壓
# 解壓到指定資料夾
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module/
-
修改解壓後的檔名
mv elasticsearch-7.8.0 es
-
建立新使用者
由於安全問題,Elasticsearch 不允許 root 使用者直接執行,所以要建立新使用者,在 root 用
戶中建立新使用者
#新增 es 使用者
useradd es
#為 es 使用者設定密碼
passwd es
#如果錯了,可以刪除再加
userdel -r es
#修改資料夾所有者
chown -R es:es /opt/module/es
-
修改配置檔案
修改/opt/module/es/config/elasticsearch.yml 檔案
# 加入如下配置
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
修改/etc/security/limits.conf
# 在檔案末尾中增加下面內容
# 每個程序可以開啟的檔案數的限制
es soft nofile 65536
es hard nofile 65536
修改/etc/security/limits.d/20-nproc.conf
# 在檔案末尾中增加下面內容
# 每個程序可以開啟的檔案數的限制
es soft nofile 65536
es hard nofile 65536
# 作業系統級別對每個使用者建立的程序數的限制
* hard nproc 4096
# 注:* 帶表 Linux 所有使用者名稱稱
修改/etc/sysctl.conf
# 在檔案中增加下面內容 # 一個程序可以擁有的 VMA(虛擬記憶體區域)的數量,預設值為 65536 vm.max_map_count=655360
重新載入
sysctl -p
-
啟動Elasticsearch
使用es使用者啟動
# 切換到es目錄
cd /opt/module/es/
#啟動
bin/elasticsearch
#後臺啟動
bin/elasticsearch -d
注:啟動時,會動態生成檔案,如果檔案所屬使用者不匹配,會發生錯誤。
解決辦法:切換到root使用者下,重新進行修改使用者和使用者組
su - root
#修改資料夾所有者
chown -R es:es /opt/module/es
-
在瀏覽器中訪問
瀏覽器中輸入地址:http://192.168.88.120:9200/
注:ip地址要換成你主機的ip地址哦!
至此在linux下搭建單機版的Elasticsearch完成!
二、Linux下安裝Elasticsearch(叢集)
1、Elasticsearch安裝
- 準備好三臺機器,分別在三臺機器上按照單機版安裝過程安裝Elasctisearch
2、叢集配置
分別修改三臺機器中 /opt/module/es/config/elasticsearch.yml 檔案
linux1:
# 加入如下配置
#叢集名稱
cluster.name: cluster-es
#節點名稱,每個節點的名稱不能重複
node.name: node-1
#ip 地址,每個節點的地址不能重複、換成自己本機的IP地址 或者配置ip地址和主機名之間的對映
network.host: linux1
#是不是有資格主節點
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: ["linux1:9300","linux2:9300","linux3: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
linux2:
# 加入如下配置
#叢集名稱
cluster.name: cluster-es
#節點名稱,每個節點的名稱不能重複
node.name: node-2
#ip 地址,每個節點的地址不能重複、換成自己本機的IP地址 或者配置ip地址和主機名之間的對映
network.host: linux2
#是不是有資格主節點
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: ["linux1:9300","linux2:9300","linux3: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
linux3:
# 加入如下配置
#叢集名稱
cluster.name: cluster-es
#節點名稱,每個節點的名稱不能重複
node.name: node-3
#ip 地址,每個節點的地址不能重複、換成自己本機的IP地址 或者配置ip地址和主機名之間的對映
network.host: linux3
#是不是有資格主節點
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: ["linux1:9300","linux2:9300","linux3: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
- 叢集啟動
分別在三臺機器上啟動Elasticsearch