1. 程式人生 > >Elasticsearch 單機叢集配置 與 宕機模擬

Elasticsearch 單機叢集配置 與 宕機模擬

單機叢集配置

1. 叢集安裝

下載 elasticsearch 解壓並把目錄改名為 es, 複製兩份, 第一份 es1, 第二份 es2

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
tar -zxf elasticsearch-6.3.0
mv elasticsearch-6.3.0 es
cp -r es ./es1
cp -r es ./es2

假設現在3個es節點都為 master
修改 es 配置檔案

vim ./es/config/elasticsearch.yml

修改如下

# 叢集名稱
cluster.name: my-test
# 節點名稱
node.name: es
node.master: true
node.data: true

network.host: 127.0.0.1
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301"]
discovery.zen.minimum_master_nodes:
2 discovery.zen.ping_timeout: 5s bootstrap.memory_lock: true action.destructive_requires_name: true

同理修改 es1es2 配置檔案 elasticsearch.yml, 修改如下

# es1
cluster.name: my-test
node.name: es1
node.master: true
node.data: true

network.host: 127.0.0.1
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled:
true http.cors.allow-origin: "*" discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"] discovery.zen.minimum_master_nodes: 2 discovery.zen.ping_timeout: 5s bootstrap.memory_lock: true action.destructive_requires_name: true
# es2
cluster.name: my-test
node.name: es2
node.master: true
node.data: true

network.host: 127.0.0.1
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s

bootstrap.memory_lock: true
action.destructive_requires_name: true

2. head外掛安裝

head外掛使用方法也不做詳細介紹了

3.驗證

分別到 es/bin es1/bin es2/bin 目錄下執行命令

elasticsearch -d

chrome 瀏覽器開啟外掛 ElasticSearch Head, 看到下圖即為成功

這裡寫圖片描述
漂亮~

宕機模擬

執行命令記下 es1 的pid, 並殺掉程序

ps -ef | grep es1
kill -9 es1的pid

重新整理外掛 Elasticsearch Head 頁面, 看到下圖, 剩下 eses2 節點

這裡寫圖片描述
完美~