elasticsearch 集群部署

elasticsearch 集群部署

系统内存: 要是在生产环境下确定你的内存在16G以上 ,因为我们的ES7.X默认需要这么大的内存

参考书籍:

下载地址:https://www.elastic.co/

配置环境:三台 centos7

版本号:7.9.1

1. 下载并解压

```
tar -zxvf  elasticsearch-7.9.1-linux-x86_64.tar.gz
```

1. List item
在这里插入图片描述

2.修改配置

2.1 重新指定jdk

  vi bin/elasticsearch
#配置ES自带的jdk
	export JAVA_HOME=/home/es/elasticsearch-7.9.1/jdk
	export PATH=$JAVA_HOME/bin:$PATH
	#添加jdk判断,注意,要带小引号。
	if [ -x "$JAVA_HOME/bin/java" ]; then
	JAVA="/home/es/elasticsearch-7.9.1/jdk/bin/java"
	else
	JAVA=`which java`
	fi

在这里插入图片描述
2.1.1 创建es的数据文件和日志文件

        设置索引数据的存储路径,默认是es根目录下的data文件夹
		mkdir  data   
		设置日志文件的存储路径,默认是es根目录下的logs文件夹
		mkdir  logs 

在启动elasticsearch之前,ES在启动的时候是不允许使用root账户的,所以我们要新建一个用户 es。

2.2 创建用户

useradd es

2.3 更换权限

chown -R es:es  /home/es/elasticsearch/elasticsearch-7.9.1
chown -R  /data
chown -R  /logs

2.4 切换用户

su   es

2.5 启动 测试是否成功运行

./bin/elasticsearch

查看端口占用情况

jps 或者
测试9200端口,能否获得响应
curl 127.0.0.1:9200 或者
netstat -ntplu

2.6 绑定ip

vi /es/elasticsearch-7.9.1/config/elasticsearch.yml
network.host: 192.168.31.110
discovery.seed_hosts: ["192.168.31.110:9700"]
cluster.initial_master_nodes: ["192.168.31.110:9700"]

elasticsearch.yml详细配置.

cluster.name:
配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。
node.name:
节点名,通常一台物理服务器就是一个节点,es会默认随机指定一个名字,建议指定一个有意义
的名称,方便管理
一个或多个节点组成一个cluster集群,集群是一个逻辑的概念,节点是物理概念,后边章节会
详细介绍。
path.conf:
设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认
在/etc/ elasticsearch
path.data:
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔
开。
path.logs:
设置日志文件的存储路径,默认是es根目录下的logs文件夹
path.plugins:
设置插件的存放路径,默认是es根目录下的plugins文件夹
bootstrap.memory_lock: true
设置为true可以锁住ES使用的内存,避免内存与swap分区交换数据。
network.host:
设置绑定主机的ip地址,设置为0.0.0.0表示绑定任何ip,允许外网访问,生产环境建议设置为
具体的ip。
http.port: 9200
设置对外服务的http端口,默认为9200。
transport.tcp.port: 9300 集群结点之间通信端口
node.master:
指定该节点是否有资格被选举成为master结点,默认是true,如果原来的master宕机会重新选
举新的master。
node.data:
指定该节点是否存储索引数据,默认为true。
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2","node3"]
node.max_local_storage_nodes:
单机允许的最大存储结点数,通常单机启动一个结点建议设置为1,开发环境如果单机启动多个节
点可设置大于1。

2.7 设置es内存

vi /es/elasticsearch-7.9.1/config/jvm.options

在配置文件中设置
-Xms8g
-Xmx8g
根据生产情况设定。建议-Xms与-Xmx配置成一样,同时不要超过32G,一些文档说是30.5G
参考文献:https://www.elastic.co/cn/blog/a-heap-of-trouble

2.8 .访问我们es的地址了
http:192.168.31.110:9200

2.9 es后台启动

./bin/elasticsearch -d

集群部署

第一台服务器配置:
vi /es/elasticsearch.7.9.1/config/elasticsearch.yml
#集群名称
cluster.name: my_es
#节点名称
node.name: node1
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
network.host: 192.168.31.110
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.31.110:9700","192.168.31.111:9800","192.168.31.112:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2","node3"]
#数据和存储路径
path.data: /data
path.logs: /logs

在这里插入图片描述
在这里插入图片描述

第二台服务器配置:
#集群名称
cluster.name: my_es
#节点名称
node.name: node2
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址 你的IP地址,请自行配置
network.host: 192.168.31.111
#端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9800
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.31.110:9700","192.168.31.111:9800","192.168.31.112:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2","node3"]
#数据和存储路径
path.data: /data
path.logs: /logs
访问集群状态信息 http://192.168.149.135:9201/_cat/health?v 成功

在这里插入图片描述

健康状况结果解释:
cluster 集群名称
status 集群状态
green代表健康;
yellow代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整;
red 代表部分主分片不可用,可能已经丢失数据。这个时候我们就可以启动我们的第三个ES节点,
第三台服务器配置文件
启动完成之后,我们去访问
集群状态信息 http://192.168.149.135:9201/_cat/health?v 成功。
我们这个时候就能够看到集群的节点数已经变成了三个,我们的ES集群就已经成功搭建了
使用Kibana配置和管理集群
集群配置
因为之前我们在单机演示的时候也使用到了Kibana,我们直接将他修改成集群配置
修改Kibana的集群配置
node.total代表在线的节点总数量
node.data代表在线的数据节点的数量
shards 存活的分片数量
pri 存活的主分片数量 正常情况下 shards的数量是pri的两倍。
relo迁移中的分片数量,正常情况为 0
init 初始化中的分片数量 正常情况为 0
unassign未分配的分片 正常情况为 0
pending_tasks准备中的任务,任务指迁移分片等 正常情况为 0
max_task_wait_time任务最长等待时间
active_shards_percent正常分片百分比 正常情况为 100%
第三台服务器配置:
#集群名称
cluster.name: my_es
#节点名称
node.name: node3
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址 你的IP地址,请自行配置
network.host: 192.168.31.112
#端口
http.port: 9203
#内部节点之间沟通端口
transport.tcp.port: 9900
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.31.110:9700","192.168.31.111:9800","192.168.31.112:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node1", "node2","node3"]
#数据和存储路径
path.data: /data
path.logs: /logs

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值