天天看點

Elasticsearch單主機多節點叢集配置Elasticsearch單主機多節點配置

Elasticsearch單主機多節點配置

系統版本

[[email protected] elasticsearch]$ lsb_release -a

LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch

Distributor ID: CentOS

Description: CentOS Linux release 7.6.1810 (Core)

Release: 7.6.1810

Codename: Core

JAVA版本

[[email protected] elasticsearch]$ java -version

java version “12.0.1” 2019-04-16

Java™ SE Runtime Environment (build 12.0.1+12)

Java HotSpot™ 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

Es版本

[[email protected] bin]$ curl http://192.168.0.1:9200

“name” : “es-node1”,

“cluster_name” : “test-es”,

“cluster_uuid” : “EB7JncpdSQWBHNP0HICsAw”,

“version” : {

“number” : “6.5.4”,

“build_flavor” : “default”,

“build_type” : “tar”,

“build_hash” : “d2ef93d”,

“build_date” : “2018-12-17T21:17:40.758843Z”,

“build_snapshot” : false,

“lucene_version” : “7.5.0”,

“minimum_wire_compatibility_version” : “5.6.0”,

“minimum_index_compatibility_version” : "5.0.0

“tagline” : “You Know, for Search”

建立并切換到普通使用者

因es不能夠使用root來啟動,是以需建立普通使用者來啟動es

useradd Elastic

su - Elastic

JDK環境配置

在環境變量配置檔案添加如下内容

JAVA_HOME=/usr/local/Java/jdk-12.0.1

JRE_HOME=/usr/local/Java/jdk-12.0.1/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

核心參數

sed -i ‘$avm.max_map_count = 655360’ /etc/sysctl.conf

使用者限制參數

sed -i ‘$aElastic - nofile 65536’ /etc/security/limits.conf

es記憶體大小

切換到普通使用者

sed -i ‘$aexport ES_HEAP_SIZE=512M’ ~/.bash_profile(因測試虛機記憶體較小,顧設定為512M,)

source ~/.bash_profile

擷取壓縮包

Es:https://www.elastic.co/cn/downloads/

JDK:http://jdk.java.net/java-se-ri/

解壓壓縮包

tar xf elasticsearch-6.5.4.tar.gz

mv elasticsearch-6.5.4 elasticsearch1

cp elasticsearch1 elasticsearch2

修改elasticsearch1的主配置檔案

Vim conf/elasticsearch.yml

添加如下内容:

###叢集名稱,叢集内所有的這個要相同###

cluster.name: Elasticsearch

###節點名稱,每個節點的名稱要區分開來###

node.name: es-node1

###是否可以被選舉成master節點,一般來說都是為true的,除了你會使用單個節點去作為master##

node.master: true

###是否可稱為資料節點###

node.data: true

###是否壓縮TCP傳輸時的資料,預設為false###

transport.tcp.compress: true

###叢集内使用的接口号,這個不能夠跟端口号相同

transport.tcp.port: 9300###

###資料存放的位置###

path.data: /data/elasticsearch/data

###日志存放的位置###

path.logs: /data/elasticsearch/logs

###本機的IP###

network.host: 192.168.0.1

###使用的端口号###

http.port: 9200

###叢集内的節點###

discovery.zen.ping.unicast.hosts:[“192.168.0.1:9300”, “192.168.0.1:9301”]

###有多少節點存活的情況下,叢集可以正常運作,計算方式為n/2+1

discovery.zen.minimum_master_nodes: 1

修改elasticsearch2的主配置檔案

Vim conf/elasticsearch.yml

添加如下内容:

###叢集名稱,叢集内所有的這個要相同###

cluster.name: Elasticsearch

###節點名稱,每個節點的名稱要區分開來###

node.name: es-node1

###是否可以被選舉成master節點,一般來說都是為true的,除了你會使用單個節點去作為master##

node.master: true

###是否可稱為資料節點###

node.data: true

###是否壓縮TCP傳輸時的資料,預設為false###

transport.tcp.compress: true

###叢集内使用的接口号,這個不能夠跟端口号相同###

transport.tcp.port: 9301

###資料存放的位置###

path.data: /data/elasticsearch1/data

###日志存放的位置###

path.logs: /data/elasticsearch1/logs

###本機的IP###

network.host: 192.168.0.1

###使用的端口号###

http.port: 9201

###叢集内的節點###

discovery.zen.ping.unicast.hosts:[“192.168.0.1:9300”, “192.168.0.1:9301”]

###有多少節點存活的情況下,叢集可以正常運作,計算方式為n/2+1

discovery.zen.minimum_master_nodes: 1

啟動elasticsearch1

  1. 使用背景啟動方式,使用nohup把程式放在背景運作

    nohup ./elasticsearch1/bin/elasticsearch &

  2. 等待一會兒,使用netstat檢視端口資訊

    netstat -an | grep 9200

啟動elasticsearch2

  1. 使用背景啟動方式,使用nohup把程式放在背景運作

    nohup ./elasticsearch1/bin/elasticsearch &

  2. 等待一會兒,使用netstat檢視端口資訊

    netstat -an | grep 9201

檢查節點和叢集資訊

檢視節點資訊

[[email protected] elasticsearch1]$ curl -XGET http://192.168.0.1:9200/_cat/nodes?v

ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name

192.168.0.1 39 97 1 1.72 1.13 0.48 mdi * es-node1

192.168.0.1 21 97 29 1.72 1.13 0.48 mdi - es-node2

檢視叢集狀态

[[email protected] elasticsearch1]$ curl -XGET http://192.168.0.1:9200/_cluster/health?pretty

{

“cluster_name” : “test-es”,

“status” : “green”,

“timed_out” : false,

“number_of_nodes” : 2,

“number_of_data_nodes” : 2,

“active_primary_shards” : 0,

“active_shards” : 0,

“relocating_shards” : 0,

“initializing_shards” : 0,

“unassigned_shards” : 0,

“delayed_unassigned_shards” : 0,

“number_of_pending_tasks” : 0,

“number_of_in_flight_fetch” : 0,

“task_max_waiting_in_queue_millis” : 0,

“active_shards_percent_as_number” : 100.0

}

完成

注意事項: 叢集的master節點是可以自動選舉或者是自己定義的,這使用的是自動選舉,如果一個節點當機,那麼另外一個節點就會自動選舉為master,保證業務的正常運作,在實際生産環境中可以使用多個節點來保證業務的穩定性

繼續閱讀