1. 程式人生 > 其它 >linux下安裝Elasticsearch(單機版和叢集版)

linux下安裝Elasticsearch(單機版和叢集版)

一、linux下安裝Elasticsearch(單機)

1、軟體下載

下載地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0

2、軟體安裝

  1. 將下載的軟體上傳到linux中並解壓
# 解壓到指定資料夾
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /opt/module/
  1. 修改解壓後的檔名
 mv elasticsearch-7.8.0 es
  1. 建立新使用者

由於安全問題,Elasticsearch 不允許 root 使用者直接執行,所以要建立新使用者,在 root 用
戶中建立新使用者

#新增 es 使用者
useradd es
#為 es 使用者設定密碼
passwd es
#如果錯了,可以刪除再加
userdel -r es
#修改資料夾所有者
chown -R es:es /opt/module/es 
  1. 修改配置檔案

修改/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
  1. 啟動Elasticsearch

使用es使用者啟動

# 切換到es目錄
cd /opt/module/es/
#啟動
bin/elasticsearch
#後臺啟動
bin/elasticsearch -d

注:啟動時,會動態生成檔案,如果檔案所屬使用者不匹配,會發生錯誤。

解決辦法:切換到root使用者下,重新進行修改使用者和使用者組

su - root
#修改資料夾所有者
chown -R es:es /opt/module/es 
  1. 在瀏覽器中訪問

瀏覽器中輸入地址:http://192.168.88.120:9200/

注:ip地址要換成你主機的ip地址哦!

至此在linux下搭建單機版的Elasticsearch完成!

二、Linux下安裝Elasticsearch(叢集)

1、Elasticsearch安裝

  1. 準備好三臺機器,分別在三臺機器上按照單機版安裝過程安裝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
  1. 叢集啟動

分別在三臺機器上啟動Elasticsearch