安装elasticsearch7.2集群

安装elasticsearch7.2集群

软件版本
elasticsearch7.2.1
节点IP系统功能CPU内存硬盘
node110.80.10.1centos7.9elasticsearch4核心8GB20GB
node210.80.10.2centos7.9elasticsearch4核心8GB20GB
node310.80.10.3centos7.9elasticsearch4核心8GB20GB

node1、node2、node3

卸载系统自带java,安装新java:

1
2
3
# rpm -qa | grep java
# rpm -e --nodeps xxxxxx
# yum install -y java-1.8.0-openjdk-devel

下载安装elasticsearch:

下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-2-1

1
2
3
4
5
# cd /usr/local/src/
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz
# tar -xzvf elasticsearch-7.2.1-linux-x86_64.tar.gz
# mv elasticsearch-7.2.1 /usr/local/elasticsearch
# cp /usr/local/elasticsearch/config/elasticsearch.yml{,.bak}

node1

修改配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# vim /usr/local/elasticsearch/config/elasticsearch.yml
#集群名称(此名称在任何节点的配置文件下都是一致的)
cluster.name: my-es
#节点名称(这里需要修改,第一个节点是node-1,配置第二个节点的时候就是node-2)
node.name: node-1
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#网关地址
network.host: 0.0.0.0
#端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#es7.x之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
#部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址
discovery.seed_hosts: ["10.80.10.1","10.80.10.2","10.80.10.3"]
#es7.x之后新增的配置,初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#数据和存储路径
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs

node2

修改配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# vim /usr/local/elasticsearch/config/elasticsearch.yml
#集群名称(此名称在任何节点的配置文件下都是一致的)
cluster.name: my-es
#节点名称(这里需要修改,第一个节点是node-1,配置第二个节点的时候就是node-2)
node.name: node-2
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#网关地址
network.host: 0.0.0.0
#端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#es7.x之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
#部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址
discovery.seed_hosts: ["10.80.10.1","10.80.10.2","10.80.10.3"]
#es7.x之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#数据和存储路径
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs

node3

修改配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# vim /usr/local/elasticsearch/config/elasticsearch.yml
#集群名称(此名称在任何节点的配置文件下都是一致的)
cluster.name: my-es
#节点名称(这里需要修改,第一个节点是node-1,配置第二个节点的时候就是node-2)
node.name: node-3
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#网关地址
network.host: 0.0.0.0
#端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#es7.x之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
#部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址
discovery.seed_hosts: ["10.80.10.1","10.80.10.2","10.80.10.3"]
#es7.x之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
#数据和存储路径
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs

node1、node2、node3

修改jvm使用内存,默认1g,暂不修改:

1
2
3
# vim /usr/local/elasticsearch/config/jvm.options
-Xms1g
-Xmx1g
  • 最小堆内存和最大堆内存设置相同,防止内存抖动。
  • 最大堆内存不超过32g。

创建用户,root不能登录:

1
2
# adduser test
# echo '123456' | passwd --stdin test

修改目录权限:

1
# chown -R test /usr/local/elasticsearch/

启动elasticsearch,第一次启动建议前台启动:

1
# su - test /usr/local/elasticsearch/bin/elasticsearch
  • -d:后台执行

报错:ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

优化服务器参数配置,新建终端生效:

1
2
3
4
5
6
# vim /etc/security/limits.conf
# 尾行,添加配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
1
2
3
# vim /etc/sysctl.conf
# 尾行,添加配置
vm.max_map_count = 262145
1
# sysctl -p

再次启动,后台启动:

1
2
# su test
$ /usr/local/elasticsearch/bin/elasticsearch -d

查看日志:

1
$ tail -f /usr/local/elasticsearch/logs/my-es.log

访问测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ curl http://10.80.10.1:9200
{
"name" : "node-1",
"cluster_name" : "my-es",
"cluster_uuid" : "KRC0W8tGRsKQVEVnsQE3ng",
"version" : {
"number" : "7.2.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "fe6cb20",
"build_date" : "2019-07-24T17:58:29.979462Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

now, for Search"
}
$ curl http://10.80.10.1:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.80.10.2 20 40 5 0.26 0.14 0.08 mdi * node-2
10.80.10.1 29 40 4 0.10 0.08 0.06 mdi - node-1
10.80.10.3 27 40 4 0.15 0.13 0.07 mdi - node-3
$ curl http://10.80.10.1:9200/_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1701589315 07:41:55 my-es green 3 3 0 0 0 0 0 0 - 100.0%