前言:一到六演示采用伪分布式,七单独介绍分布式集群方式
文章目录
- 一、前期准备
- 1. 下载
- 2. 解压
- 3.创建es用户
- 4. 增加资源分配
- 5. 内核参数
- 6. 刷新 配置
- 二、node1节点
- 2.1. 重命名
- 2.1. 编辑配置
- 三、node2节点
- 3.1. 复制node-1
- 3.2. 修改配置
- 四、node3节点
- 4.1. 复制node-1
- 3.2. 修改配置
- 五、赋予权限和启动
- 5.1. 赋予权限
- 5.2. 切换用户
- 5.3. es启动node1
- 5.4. es启动node2
- 5.5. es启动node3
- 5.6. 防火墙配置
- 六、服务验证
- 6.1. 本机验证
- 6.2. 浏览器验证
- 七、集群配置
- 7.1. node1
- 7.2. node2
- 7.1. node3
一、前期准备
ip | 端口 | 节点 |
---|---|---|
192.168.159.134 | 9200 | node1 |
192.168.159.134 | 9201 | node2 |
192.168.159.134 | 9202 | node3 |
请使用root用户操作,需要es用户操作的地方,我会提前说明。
https://www.elastic.co/cn/
1. 下载
我存放的目录在/app下面
cd /app
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz
2. 解压
tar -xzf elasticsearch-7.15.2-linux-x86_64.tar.gz
3.创建es用户
es7不能使用root用户启动,因此,需要创建es操作用户
adduser es
passwd es
4. 增加资源分配
增加资源分配,资源分配不够进程会自动关闭服务
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
5. 内核参数
vim /etc/sysctl.conf
添加内容:
vm.max_map_count=262145
6. 刷新 配置
sysctl -p
为了演示方便,这里演示采用伪集群配置,本文末尾附上,集群配置
二、node1节点
使用root用户操作
2.1. 重命名
cd /app
mv elasticsearch-7.15.2 elasticsearch-node1
2.1. 编辑配置
cd /app/elasticsearch-node1/config/
vim elasticsearch.yml
- 添加以下内容:
cluster.name: dianping-app
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
cluster.initial_master_nodes: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
- 具体调整地方
第1处
#修改集群名称:
cluster.name: dianping-app
第2处
#修改node名称:
node.name: node-1
第3处
# 本机运行es服务器地址:
network.host: 0.0.0.0# http端口是为了响应restful的请求
http.port: 9200# transport做集群之间指令通信的
transport.tcp.port: 9300# 允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
第4处
# 发现es集群节点
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]# 初始化竞选主master(3台有资格,最终master节点通过算法决定的)
cluster.initial_master_nodes: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
三、node2节点
使用root用户操作
3.1. 复制node-1
cd /app
cp elasticsearch-node1/ elasticsearch-node2 -r
3.2. 修改配置
cd /app/elasticsearch-node2/config/
vim elasticsearch.yml
- 调整内容如下:
node.name: node-2
http.port: 9201
transport.tcp.port: 9301
- 具体调整地方
第1处
修改node名称:
node.name: node-2
第2处
# http端口是为了响应restful的请求
http.port: 9201# transport做集群之间指令通信的
transport.tcp.port: 9301
四、node3节点
使用root用户操作
4.1. 复制node-1
cd /app
cp elasticsearch-node1/ elasticsearch-node3 -r
3.2. 修改配置
cd /app/elasticsearch-node3/config/
vim elasticsearch.yml
- 调整内容如下:
node.name: node-3
http.port: 9202
transport.tcp.port: 9302
- 具体调整地方
第1处
#修改node名称:
node.name: node-3
第2处
# http端口是为了响应restful的请求
http.port: 9202# transport做集群之间指令通信的
transport.tcp.port: 9302
五、赋予权限和启动
使用root用户操作
5.1. 赋予权限
cd /app
chown es.es elasticsearch-node1/ -R
chown es.es elasticsearch-node2/ -R
chown es.es elasticsearch-node3/ -R
5.2. 切换用户
su - es
5.3. es启动node1
cd /app/elasticsearch-node1/bin/elasticsearch -d
5.4. es启动node2
cd /app/elasticsearch-node2/bin/elasticsearch -d
5.5. es启动node3
cd /app/elasticsearch-node3/bin/elasticsearch -d
5.6. 防火墙配置
- 第1种:关闭防火墙
systemctl stop firewalld
- 第2种:防火墙允许9200/9201/9202端口访问
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9201/tcp --permanent
firewall-cmd --zone=public --add-port=9202/tcp --permanent
firewall-cmd --reload
六、服务验证
6.1. 本机验证
curl http://192.168.159.134:9200/_cat/health
6.2. 浏览器验证
http://192.168.159.134:9200/_cat/health
http://192.168.159.134:9200/_cat/health
七、集群配置
ip | 端口 | 节点 |
---|---|---|
192.168.159.134 | 9200 | node1 |
192.168.159.135 | 9200 | node2 |
192.168.159.136 | 9200 | node3 |
7.1. node1
在192.168.159.134服务器操作
cluster.name: dianping-app
node.name: node-1
path.data: /app/elasticsearch-7.15.2/data
path.logs: /app/elasticsearch-7.15.2/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.159.134:9200", "192.168.159.135:9200", "192.168.159.136:9300"]
cluster.initial_master_nodes: ["192.168.159.134:9200", "192.168.159.135:9200", "192.168.159.136:9300"]
7.2. node2
在192.168.159.135服务器操作
cluster.name: dianping-app
node.name: node-2
path.data: /app/elasticsearch-7.15.2/data
path.logs: /app/elasticsearch-7.15.2/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.159.134:9200", "192.168.159.135:9200", "192.168.159.136:9300"]
cluster.initial_master_nodes: ["192.168.159.134:9200", "192.168.159.135:9200", "192.168.159.136:9300"]
7.1. node3
在192.168.159.136服务器操作
cluster.name: dianping-app
node.name: node-3
path.data: /app/elasticsearch-7.15.2/data
path.logs: /app/elasticsearch-7.15.2/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.159.134:9200", "192.168.159.135:9200", "192.168.159.136:9300"]
cluster.initial_master_nodes: ["192.168.159.134:9200", "192.168.159.135:9200", "192.168.159.136:9300"]