在這個指南中,我們將通過一個簡單的Shell腳本安裝Elasticsearch。請確保在開始之前滿足以下要求
- 使用基于 RHEL 的 Linux 發(fā)行版(例如 CentOS 和 Fedora)操作系統(tǒng)。
- 擁有root權(quán)限或者sudo權(quán)限。
安裝Elasticsearch的步驟如下
1.首先,創(chuàng)建一個名為install_elasticsearch.sh的文件,并打開該文件以編輯
touch install_elasticsearch.sh chmod +x install_elasticsearch.sh vim install_elasticsearch.sh
2.然后,將以下內(nèi)容粘貼到install_elasticsearch.sh文件中
#!/bin/bash # 安裝必要的軟件包 sudo yum install -y wget # 導入Elasticsearch的GPG key sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # 添加Elasticsearch的存儲庫 cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF # 安裝Elasticsearch sudo yum install -y elasticsearch # 啟用并啟動Elasticsearch服務(wù) sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
3.保存并關(guān)閉文件
4.運行安裝腳本
./install_elasticsearch.sh
5.等待腳本執(zhí)行完成,這可能需要幾分鐘的時間。完成后,Elasticsearch將作為一個服務(wù)在您的系統(tǒng)上運行
6.檢查Elasticsearch是否正在運行
curl -X GET "localhost:9200/"
如果安裝成功,您將看到類似于以下內(nèi)容的響應(yīng)
{ "name" : "your-node-name", "cluster_name" : "elasticsearch", "cluster_uuid" : "xxxxxxxxxxxx", "version" : { "number" : "7.x.x", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "xxxxxxxxxx", "build_date" : "2021-09-30T21:56:19.031789Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
步驟詳解
#!/bin/bash
#!/bin/bash 是一個稱為 shebang(或 hashbang)的特殊字符串,它通常出現(xiàn)在腳本文件的第一行。當您將此字符串作為文件的第一行時,它會指示操作系統(tǒng)使用 /bin/bash 作為解釋器來執(zhí)行該腳本。
當您創(chuàng)建一個 Bash 腳本時,請在文件的開頭添加 #!/bin/bash,以確保正確解釋和執(zhí)行腳本。例如,您可以創(chuàng)建一個名為 my_script.sh 的腳本文件,并在文件開頭添加如下內(nèi)容:
#!/bin/bash # 這是一個簡單的 Bash 腳本示例 echo "Hello, World!"
在文件中添加腳本內(nèi)容后,需要為腳本文件設(shè)置可執(zhí)行權(quán)限。您可以使用 chmod 命令為腳本文件設(shè)置可執(zhí)行權(quán)限:
chmod +x my_script.sh
現(xiàn)在,您可以通過運行 ./my_script.sh 來執(zhí)行腳本。如果一切正常,您將在終端中看到 "Hello, World!" 消息。
sudo yum install -y wget
sudo yum install -y wget命令用于在基于RHEL的Linux發(fā)行版(如CentOS和Fedora)上安裝wget軟件包。
yum是這些系統(tǒng)上的包管理器,用于安裝、更新和卸載軟件包。在這個命令中,install表示要安裝一個軟件包,-y選項表示自動回答所有提示為“是”,wget是要安裝的軟件包的名稱。
wget是一個非常實用的命令行工具,用于從網(wǎng)絡(luò)上下載文件。在Elasticsearch安裝過程中,我們需要wget來下載Elasticsearch的GPG密鑰,以便驗證軟件包的完整性和來源。安裝wget后,您就可以使用它來執(zhí)行其他與下載相關(guān)的操作。
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
此命令將創(chuàng)建一個名為 elasticsearch.repo 的新文件并將其放置在 /etc/yum.repos.d/ 目錄下。這個文件包含了 Elasticsearch 存儲庫的配置,使您的系統(tǒng)能夠從 Elasticsearch 官方存儲庫中下載和安裝軟件包。
以下是命令的各部分的解釋:
- cat <<EOF: 使用 "Here Document"(這里文檔)語法從標準輸入讀取文本內(nèi)容,直到遇到 EOF 為止。
- sudo tee /etc/yum.repos.d/elasticsearch.repo: 將 cat 命令的輸出重定向到 /etc/yum.repos.d/elasticsearch.repo 文件中。使用 sudo 是因為需要 root 權(quán)限才能寫入此目錄。
- [elasticsearch-7.x]: 存儲庫的唯一 ID。
- name=Elasticsearch repository for 7.x packages: 存儲庫的名稱,僅用于描述性目的。
- baseurl=https://artifacts.elastic.co/packages/7.x/yum: 存儲庫的基本 URL,包含軟件包和元數(shù)據(jù)。
- gpgcheck=1: 指示 YUM 在安裝軟件包之前檢查其 GPG 簽名。
- gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch: Elasticsearch GPG 密鑰的 URL,用于驗證軟件包的簽名。
- enabled=1: 啟用此存儲庫,以便 YUM 可以使用它來下載和安裝軟件包。
- autorefresh=1: 啟用自動刷新,以便 YUM 在執(zhí)行操作時自動檢查和更新存儲庫元數(shù)據(jù)。
- type=rpm-md: 存儲庫的元數(shù)據(jù)類型,對于 Elasticsearch 存儲庫,它是 rpm-md。
執(zhí)行此命令后,Elasticsearch 存儲庫將添加到您的系統(tǒng)中,您可以使用 YUM 安裝 Elasticsearch 軟件包。
sudo yum install -y elasticsearch
使用 sudo yum install -y elasticsearch 命令,您可以在基于 RHEL 的 Linux 發(fā)行版(例如 CentOS 和 Fedora)上安裝 Elasticsearch 軟件包。
在此命令中:
- sudo:以 root 權(quán)限執(zhí)行命令。
- yum:YUM 包管理器,用于在基于 RHEL 的 Linux 發(fā)行版上安裝、更新和卸載軟件包。
- install:表示要安裝一個軟件包。
- -y:自動回答所有提示為“是”。
- elasticsearch:要安裝的軟件包的名稱。
這個命令將從之前添加的 Elasticsearch 存儲庫中下載并安裝 Elasticsearch。安裝完成后,Elasticsearch 將作為一個服務(wù)存在于您的系統(tǒng)上。
sudo systemctl daemon-reload
sudo systemctl daemon-reload命令用于重新加載systemd的配置文件。當您修改了systemd的服務(wù)單元文件(例如,/etc/systemd/system或/usr/lib/systemd/system目錄中的文件)后,需要執(zhí)行這個命令,以便systemd獲取并應(yīng)用最新的配置。
在Elasticsearch安裝過程中,當您安裝Elasticsearch軟件包時,服務(wù)單元文件將被添加到相應(yīng)的目錄。執(zhí)行sudo systemctl daemon-reload命令是為了確保systemd知道Elasticsearch服務(wù)的存在,并使用正確的配置來管理該服務(wù)。
sudo systemctl enable elasticsearch.service
sudo systemctl enable elasticsearch.service 命令用于在基于 systemd 的 Linux 發(fā)行版上啟用 Elasticsearch 服務(wù)。這意味著,當系統(tǒng)啟動時,Elasticsearch 服務(wù)將自動運行。
在這個命令中:
- sudo:以 root 權(quán)限執(zhí)行命令。
- systemctl:systemd 的主命令,用于管理服務(wù)和系統(tǒng)狀態(tài)。
- enable:用于啟用服務(wù),使其在系統(tǒng)啟動時自動運行。
- elasticsearch.service:Elasticsearch 服務(wù)的名稱。
在啟用 Elasticsearch 服務(wù)之后,您需要手動啟動它,以便在當前會話中立即開始運行。
sudo systemctl start elasticsearch.service
sudo systemctl start elasticsearch.service 命令用于在基于 systemd 的 Linux 發(fā)行版上啟動 Elasticsearch 服務(wù)。執(zhí)行此命令后,Elasticsearch 服務(wù)將立即開始運行。
在這個命令中:
- sudo:以 root 權(quán)限執(zhí)行命令。
- systemctl:systemd 的主命令,用于管理服務(wù)和系統(tǒng)狀態(tài)。
- start:用于啟動服務(wù)。
- elasticsearch.service:Elasticsearch 服務(wù)的名稱。
啟動 Elasticsearch 服務(wù)后,您可以使用以下命令檢查其狀態(tài):
sudo systemctl status elasticsearch.service
如果服務(wù)已成功啟動并正在運行,您將看到類似于以下內(nèi)容的輸出:
● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2023-04-11 12:34:56 UTC; 1min 5s ago Docs: https://www.elastic.co Main PID: 12345 (java) Tasks: 62 Memory: 1.2G CGroup: /system.slice/elasticsearch.service └─12345 /usr/bin/java -Xms1g -Xmx1g ...
現(xiàn)在,Elasticsearch 服務(wù)正在運行,您可以繼續(xù)配置、使用和管理 Elasticsearch 實例。
相關(guān)問題
不用配置 es專屬賬戶啟動嗎
Elasticsearch 默認情況下以 elasticsearch 用戶身份運行。在安裝 Elasticsearch 時,軟件包會自動創(chuàng)建 elasticsearch 用戶和組。這種安裝方式遵循了最佳安全實踐,以便在系統(tǒng)上運行 Elasticsearch 時遵循最小權(quán)限原則。
默認情況下,Elasticsearch 的 systemd 服務(wù)單元文件(例如 /usr/lib/systemd/system/elasticsearch.service)已配置為使用 elasticsearch 用戶和組。服務(wù)單元文件中的以下行指定了該用戶和組:
User=elasticsearch Group=elasticsearch
因此,在安裝 Elasticsearch 時,您不需要手動創(chuàng)建專用用戶和組,也不需要對 systemd 服務(wù)單元文件進行任何更改。默認情況下,Elasticsearch 會以 elasticsearch 用戶身份運行。
在啟動 Elasticsearch 服務(wù)(sudo systemctl start elasticsearch.service)后,它將自動以 elasticsearch 用戶身份運行。如果您需要更改運行 Elasticsearch 的用戶和組,可以編輯 systemd 服務(wù)單元文件并更新 User 和 Group 選項。但是,請確保所選用戶和組具有適當?shù)臋?quán)限,以便正確訪問 Elasticsearch 安裝目錄、數(shù)據(jù)目錄和日志目錄。
在linux上如何查詢es專屬賬戶
在 Linux 系統(tǒng)上,您可以使用 id 命令查詢 Elasticsearch 專用用戶的信息。id 命令為特定用戶提供了用戶 ID、組 ID 以及用戶所屬的任何其他組的詳細信息。
為了查詢 Elasticsearch 專用用戶,請運行以下命令:
id elasticsearch
如果 Elasticsearch 用戶存在,您將看到類似以下的輸出:
uid=998(elasticsearch) gid=998(elasticsearch) groups=998(elasticsearch)
在這個例子中,uid=998 表示用戶 ID 為 998,gid=998 表示組 ID 為 998。Elasticsearch 用戶和組的名稱和 ID 可能因系統(tǒng)而異。
請注意,在某些發(fā)行版中,Elasticsearch 用戶可能具有不同的名稱,例如 elastic。如果您不確定 Elasticsearch 用戶的名稱,請檢查 Elasticsearch 的 systemd 服務(wù)單元文件(例如 /usr/lib/systemd/system/elasticsearch.service),在文件中查找 User 和 Group 配置選項。
那用rpm能搭建es偽集群嗎
是的,使用 RPM 包安裝 Elasticsearch 時,您可以在單個服務(wù)器上搭建一個偽集群。偽集群是指在同一臺服務(wù)器上運行多個 Elasticsearch 節(jié)點。這種設(shè)置可以用于開發(fā)、測試或?qū)W習目的,但對于生產(chǎn)環(huán)境來說,最好使用不同的物理或虛擬服務(wù)器搭建真正的集群。
要在單個服務(wù)器上搭建一個 Elasticsearch 偽集群,請遵循以下步驟:
- 使用 RPM 包安裝 Elasticsearch(這將為您創(chuàng)建一個默認的 Elasticsearch 節(jié)點)。
- 為每個額外的節(jié)點創(chuàng)建一個新的配置文件,例如 /etc/elasticsearch/elasticsearch_node2.yml。您可以復制現(xiàn)有的 /etc/elasticsearch/elasticsearch.yml 文件,并根據(jù)需要進行修改。確保為每個節(jié)點指定唯一的 node.name、http.port 和 path.data 配置選項。
例如,/etc/elasticsearch/elasticsearch_node2.yml 的內(nèi)容可以如下所示:
cluster.name: my-cluster node.name: "node-2" path.data: /var/lib/elasticsearch_node2 path.logs: /var/log/elasticsearch_node2 http.port: 9201 discovery.seed_hosts: ["127.0.0.1"] cluster.initial_master_nodes: ["node-1", "node-2"]
- 為每個額外的節(jié)點創(chuàng)建數(shù)據(jù)和日志目錄,并更改所有權(quán)為 elasticsearch 用戶和組:
sudo mkdir -p /var/lib/elasticsearch_node2 sudo mkdir -p /var/log/elasticsearch_node2 sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch_node2 sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch_node2
- 為每個額外的節(jié)點創(chuàng)建新的 systemd 服務(wù)單元文件。復制現(xiàn)有的 /usr/lib/systemd/system/elasticsearch.service 文件并進行修改。您可以將新文件命名為 /usr/lib/systemd/system/elasticsearch_node2.service。將 Environment=ES_PATH_CONF=/etc/elasticsearch 更改為指向新節(jié)點的配置文件,例如 Environment=ES_PATH_CONF=/etc/elasticsearch_node2。
- 重新加載 systemd 配置并啟動所有節(jié)點:
sudo systemctl daemon-reload sudo systemctl start elasticsearch.service sudo systemctl start elasticsearch_node2.service
- 使用 curl 或其他工具檢查節(jié)點的運行狀況。例如,對于第一個節(jié)點,您可以運行 curl -X GET "localhost:9200/",對于第二個節(jié)點,您可以運行 curl -X GET "localhost:9201/"。
這些步驟將創(chuàng)建一個 Elasticsearch 偽集群,其中包含兩個運行在同一臺服務(wù)器上的節(jié)點。請根據(jù)需要添加更多節(jié)點。請注意,雖然偽集群可以用于開發(fā)、測試和學習目的,但在生產(chǎn)環(huán)境中建議將 Elasticsearch 節(jié)點部署到不同的物理或虛擬服務(wù)器上以獲得更好的性能和容錯能力。
新的節(jié)點如何加入已經(jīng)配置好的偽集群中
要將新的 Elasticsearch 節(jié)點添加到已經(jīng)配置好的偽集群中,請遵循以下步驟:
- 首先,在新節(jié)點所在的服務(wù)器上使用 RPM 包安裝 Elasticsearch,如之前的指南所述。
- 在新節(jié)點的服務(wù)器上,創(chuàng)建一個新的配置文件,例如 /etc/elasticsearch/elasticsearch_node3.yml。您可以復制現(xiàn)有的 /etc/elasticsearch/elasticsearch.yml 文件,并根據(jù)需要進行修改。確保為新節(jié)點指定唯一的 node.name、http.port 和 path.data 配置選項。同時,確保 discovery.seed_hosts 配置為現(xiàn)有集群中的一個或多個節(jié)點的 IP 地址或主機名。
例如,/etc/elasticsearch/elasticsearch_node3.yml 的內(nèi)容可以如下所示:
cluster.name: my-cluster node.name: "node-3" path.data: /var/lib/elasticsearch_node3 path.logs: /var/log/elasticsearch_node3 http.port: 9202 discovery.seed_hosts: ["IP_ADDRESS_OR_HOSTNAME_OF_EXISTING_NODE"]
請將 IP_ADDRESS_OR_HOSTNAME_OF_EXISTING_NODE 替換為現(xiàn)有集群中任一節(jié)點的實際 IP 地址或主機名。
- 為新節(jié)點創(chuàng)建數(shù)據(jù)和日志目錄,并更改所有權(quán)為 elasticsearch 用戶和組:
sudo mkdir -p /var/lib/elasticsearch_node3 sudo mkdir -p /var/log/elasticsearch_node3 sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch_node3 sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch_node3
- 為新節(jié)點創(chuàng)建新的 systemd 服務(wù)單元文件。復制現(xiàn)有的 /usr/lib/systemd/system/elasticsearch.service 文件并進行修改。您可以將新文件命名為 /usr/lib/systemd/system/elasticsearch_node3.service。將 Environment=ES_PATH_CONF=/etc/elasticsearch 更改為指向新節(jié)點的配置文件,例如 Environment=ES_PATH_CONF=/etc/elasticsearch_node3。
- 重新加載 systemd 配置并啟動新節(jié)點:
sudo systemctl daemon-reload sudo systemctl start elasticsearch_node3.service
- 使用 curl 或其他工具檢查新節(jié)點的運行狀況。例如,對于新節(jié)點,您可以運行 curl -X GET "localhost:9202/"。
新節(jié)點應(yīng)該會自動加入現(xiàn)有的偽集群。要驗證新節(jié)點是否已成功加入集群,您可以在集群中的任何節(jié)點上運行以下命令:
curl -X GET "localhost:9200/_cat/nodes?v&pretty"
這將顯示集群中所有節(jié)點的列表,包括新加入的節(jié)點。
請注意,在生產(chǎn)環(huán)境中,建議將 Elasticsearch 節(jié)點部署到不同的物理或虛擬服務(wù)器上以獲得更好的性能和容錯能力。偽集群主要適用于開發(fā)、測試和學習目的。
那我配置新節(jié)點加入偽集群的時候服務(wù)器用不用停機
在配置新節(jié)點加入 Elasticsearch 偽集群時,您不需要停止現(xiàn)有節(jié)點或整個服務(wù)器。Elasticsearch 集群支持熱擴展,這意味著您可以在不停機的情況下向集群中添加或刪除節(jié)點。
在添加新節(jié)點到偽集群的過程中,只需確保新節(jié)點的配置文件正確設(shè)置,包括 discovery.seed_hosts,并確保新節(jié)點能夠與現(xiàn)有節(jié)點通信。添加新節(jié)點后,您可以使用 _cat/nodes API(如:curl -X GET "localhost:9200/_cat/nodes?v&pretty")監(jiān)控新節(jié)點是否成功加入了集群。
在新節(jié)點加入集群后,Elasticsearch 將自動重新分布數(shù)據(jù),以便在所有可用節(jié)點之間保持負載平衡。這個過程可能需要一些時間,具體取決于您的數(shù)據(jù)量和集群規(guī)模。在重新分布期間,集群可能會受到性能影響,但通常不會導致停機。
總之,在向偽集群添加新節(jié)點時,無需停止現(xiàn)有節(jié)點或服務(wù)器。Elasticsearch 支持在運行中動態(tài)調(diào)整集群規(guī)模。然而,請注意,在生產(chǎn)環(huán)境中,建議將 Elasticsearch 節(jié)點部署到不同的物理或虛擬服務(wù)器上以獲得更好的性能和容錯能力。偽集群主要適用于開發(fā)、測試和學習目的。
如果我以前的discovery.seed_hosts 配置為一個主機地址,后續(xù)是一個新的主機地址應(yīng)該如何配置
如果您需要在現(xiàn)有的 Elasticsearch 集群中添加一個新節(jié)點,并且 discovery.seed_hosts 配置需要包含新的主機地址,您可以將新的主機地址添加到現(xiàn)有節(jié)點和新節(jié)點的 discovery.seed_hosts 列表中。
例如,假設(shè)您的集群當前有一個節(jié)點,它的 discovery.seed_hosts 配置為:
discovery.seed_hosts: ["host1"]
現(xiàn)在,您需要將新節(jié)點(host2)添加到集群中。在這種情況下,您應(yīng)該更新現(xiàn)有節(jié)點的配置文件(/etc/elasticsearch/elasticsearch.yml)以包含新的主機地址,如下所示:
discovery.seed_hosts: ["host1", "host2"]
同時,確保新節(jié)點的配置文件(例如 /etc/elasticsearch/elasticsearch_node2.yml)也包含這兩個主機地址:
discovery.seed_hosts: ["host1", "host2"]
完成更改后,請在現(xiàn)有節(jié)點上重啟 Elasticsearch 服務(wù)以應(yīng)用新的配置:
sudo systemctl restart elasticsearch.service
接下來,按照之前的說明在新節(jié)點上安裝和配置 Elasticsearch,并啟動服務(wù)。新節(jié)點應(yīng)該會自動加入集群。
請注意,當您添加新節(jié)點時,務(wù)必確保所有節(jié)點的 cluster.name 配置相同,以便它們能夠識別并加入同一個集群。在生產(chǎn)環(huán)境中,建議將 Elasticsearch 節(jié)點部署到不同的物理或虛擬服務(wù)器上以獲得更好的性能和容錯能力。
我是不是要停機更新現(xiàn)有節(jié)點的配置文件(/etc/elasticsearch/elasticsearch.yml),要不然如何讓他加載
對于現(xiàn)有節(jié)點的配置文件(/etc/elasticsearch/elasticsearch.yml)的更新,您需要重啟 Elasticsearch 服務(wù)來使更改生效。這將導致 Elasticsearch 服務(wù)短暫中斷,但整個服務(wù)器無需停機。
在更新現(xiàn)有節(jié)點的配置文件后,您可以按照以下步驟重啟 Elasticsearch 服務(wù):
- 保存對配置文件的更改。
- 通過運行以下命令來重啟 Elasticsearch 服務(wù):
bashCopy code sudo systemctl restart elasticsearch.service
這將使 Elasticsearch 服務(wù)短暫中斷。在重啟過程中,該節(jié)點將暫時無法響應(yīng)查詢和索引請求。不過,如果您的集群中有其他節(jié)點在運行,它們?nèi)匀豢梢蕴幚磉@些請求。
在重啟 Elasticsearch 服務(wù)后,新的配置將立即生效。新節(jié)點應(yīng)該能夠加入集群,前提是它們的 discovery.seed_hosts 配置已正確設(shè)置。
總之,為了應(yīng)用更新的 discovery.seed_hosts 配置,您需要重啟 Elasticsearch 服務(wù)。雖然這會導致服務(wù)短暫中斷,但整個服務(wù)器無需停機。請注意,在生產(chǎn)環(huán)境中,建議將 Elasticsearch 節(jié)點部署到不同的物理或虛擬服務(wù)器上以獲得更好的性能和容錯能力。
偽集群中發(fā)生腦裂后我該如何處理
在Elasticsearch 偽集群中發(fā)生腦裂(網(wǎng)絡(luò)分區(qū)或節(jié)點失去通信能力)時,可能會導致數(shù)據(jù)不一致和其他問題。為了處理腦裂情況,您需要采取以下步驟:
- 診斷問題:檢查集群狀態(tài)、日志文件以及系統(tǒng)資源(如網(wǎng)絡(luò)、CPU 和內(nèi)存)來確定問題的原因。確保檢查 Elasticsearch 的日志文件,通常位于 /var/log/elasticsearch 目錄下。
- 恢復網(wǎng)絡(luò)和節(jié)點間通信:如果網(wǎng)絡(luò)故障是腦裂的原因,請修復網(wǎng)絡(luò)問題以恢復節(jié)點間的通信。這可能包括修復硬件、解決配置問題或確保防火墻規(guī)則允許節(jié)點之間的通信。
- 重啟受影響的節(jié)點:在修復了網(wǎng)絡(luò)問題之后,您可能需要重啟受影響的節(jié)點以確保它們重新加入集群。使用以下命令重啟 Elasticsearch 服務(wù):
sudo systemctl restart elasticsearch.service
對于其他節(jié)點,請使用相應(yīng)的 systemd 服務(wù)名(例如 elasticsearch_node2.service)重啟服務(wù)。
- 驗證集群健康狀態(tài):在修復了問題并重啟節(jié)點后,您需要驗證集群的健康狀況。運行以下命令來檢查集群的健康狀態(tài):
curl -X GET "localhost:9200/_cluster/health?pretty"
確保集群的 status 是 green 或 yellow,這表示集群已恢復正常。如果仍然顯示為 red,則需要進一步檢查并解決問題。
- 設(shè)置最小主節(jié)點選舉數(shù)(discovery.zen.minimum_master_nodes):為了避免未來發(fā)生腦裂,您需要在配置文件中設(shè)置 discovery.zen.minimum_master_nodes 參數(shù)。這個參數(shù)表示在選舉主節(jié)點時,集群中需要達成一致的最小節(jié)點數(shù)。根據(jù) Elasticsearch 的建議,將該值設(shè)置為 (master_eligible_nodes / 2) + 1,其中 master_eligible_nodes 是具有主節(jié)點資格的節(jié)點數(shù)。
- 。在 Elasticsearch 7.x 及更高版本中,discovery.zen.minimum_master_nodes 配置已經(jīng)被移除,無論是真實集群還是偽集群。取而代之的是,Elasticsearch 7.x 引入了新的集群協(xié)調(diào)算法,通過使用 cluster.initial_master_nodes 設(shè)置來避免腦裂。
在偽集群的情況下,您應(yīng)該使用 cluster.initial_master_nodes 配置。在偽集群的第一個節(jié)點(即主節(jié)點)的 elasticsearch.yml 配置文件中添加以下設(shè)置:
cluster.initial_master_nodes: - node-1
這里,node-1 是第一個節(jié)點的名稱。對于其他節(jié)點,您可以省略此設(shè)置,因為它們將自動從主節(jié)點中發(fā)現(xiàn)其他節(jié)點。文章來源:http://www.zghlxwxcb.cn/news/detail-429531.html
在生產(chǎn)環(huán)境中,建議將 Elasticsearch 節(jié)點部署到不同的物理或虛擬服務(wù)器上以獲得更好的性能和容錯能力。偽集群主要適用于開發(fā)、測試和學習目的。同時,請確保使用 Elasticsearch 的最新版本,因為它包含了很多關(guān)于集群穩(wěn)定性和腦裂恢復的改進。文章來源地址http://www.zghlxwxcb.cn/news/detail-429531.html
到了這里,關(guān)于linux 基于 RHEL 的 Linux 發(fā)行版(例如 CentOS 和 Fedora)上用 shell 腳本安裝 elasticsearch 指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!