当前位置:   article > 正文

五-1、elasticsearch集群搭建(ES集群搭建)_es集群搭建方案

es集群搭建方案

一、下载Elasticsearch

1.选择你要下载的Elasticsearch版本

es下载地址
在这里插入图片描述
这里我下载的是
在这里插入图片描述
在这里插入图片描述


二、采用通用搭建集群的方法

集群搭建方法


三、配置三台es

1.上传压缩包到任意一台虚拟机中

上传方式有两种
第一种:使用xftp上传
在这里插入图片描述
在这里插入图片描述
直接拖动过去就可以了。

第二种:使用lrzsz
先安装

yum -y install lrzsz
  • 1

在这里插入图片描述

切换到要上传的位置

cd /opt/module
  • 1

输入命令

rz
  • 1

选择你要上传的文件
在这里插入图片描述

等待上传完成即可

2.解压并修改配置文件(配置单台es)

①解压到指定目录下

tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /opt/software/
  • 1

②修改/config下的elasticsearch.yml

cd /opt/software/elasticsearch-7.6.1/config/
  • 1
vim elasticsearch.yml
  • 1

加入如下配置

cluster.name: elasticsearch 
node.name: node-1 
network.host: 192.168.11.137 #虚拟机的IP地址
http.port: 9200 
cluster.initial_master_nodes: ["node-1"]
  • 1
  • 2
  • 3
  • 4
  • 5
vim jvm.options
  • 1

原来内容
在这里插入图片描述改为:

-Xms2g
-Xmx2g
  • 1
  • 2

在这里插入图片描述

③修改系统的配置文件
修改/etc/security/limits.conf
末尾追加

vim /etc/security/limits.conf 
  • 1
july soft nofile 65536 
july hard nofile 65536 
  • 1
  • 2

修改/etc/security/limits.d/20-nproc.conf

vim /etc/security/limits.d/20-nproc.conf 
  • 1
july soft nofile 65536
july hard nofile 65536
* hard nproc 4096
  • 1
  • 2
  • 3

在这里插入图片描述

修改/etc/sysctl.conf

vim /etc/sysctl.conf 
  • 1

追加内容

vm.max_map_count=655360 
  • 1

在这里插入图片描述
重新加载

sysctl -p
  • 1

④启动es

cd /opt/software/elasticsearch-7.6.1
  • 1
bin/elasticsearch
  • 1

如果出现如下报错
在这里插入图片描述
检查你当前的用户是不是root用户
如果是请执行

su july
  • 1

检查es这个文件夹是不是july所有者

cd /opt/software
  • 1
ll
  • 1

我都是root
在这里插入图片描述
修改为july用户(要在root用户下执行该操作)

chown -R july:july /opt/software/elasticsearch-7.6.1
  • 1

修改完成后在elasticsearch-7.6.1目录下再次执行

bin/elasticsearch
  • 1

在这里插入图片描述

测试是否启动成
浏览器访问地址,你的虚拟机地址加端口号

http://192.168.11.137:9200/
  • 1

在这里插入图片描述
至此,单机的es已经搭建完成。
ctrl+C退出es

3.配置三台es集群

首先在第一台的基础上
修改es配置文件

cd /opt/software/elasticsearch-7.6.1/config/
  • 1
vim elasticsearch.yml
  • 1

原来配置的

#集群名称
cluster.name: cluster-es 
#节点名称,每个节点的名称不能重复
node.name: node-1 
#ip地址,每个节点的地址不能重复
network.host: july1
#是不是有资格主节点
node.master: true 
node.data: true 
http.port: 9200 
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*" 
http.cors.enabled: true 
http.max_content_length: 200mb 
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-1"] 
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["july1:9300","july2:9300","july3:9300"] 
gateway.recover_after_nodes: 2 
network.tcp.keep_alive: true 
network.tcp.no_delay: true 
transport.tcp.compress: true 
#集群内同时启动的数据任务个数,默认是 2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16 
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4个
cluster.routing.allocation.node_concurrent_recoveries: 16 
#初始化数据恢复时,并发恢复线程的个数,默认 4个
cluster.routing.allocation.node_initial_primaries_recoveries: 16 
  • 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

使用分发脚本,把es这个文件夹分发到其他虚拟机

 xsync /opt/software/
  • 1

分发完成之后需要删除/data/目录下删除nodes文件!!!!这一点非常重要,不然后后续启动的时候发现不到其他节点信息,三台都要删除!!!

cd /opt/software/elasticsearch-7.6.1/data
  • 1
rm -rf nodes/
  • 1

使用分发脚本把修改系统文件的那些内容分发到其他虚拟机(如果在july用户下不行,切换到root进行分发)

xsync /etc/security/limits.conf
  • 1
xsync /etc/security/limits.d/20-nproc.conf 
  • 1
xsync /etc/sysctl.conf 
  • 1

然后同步修改其他几台虚拟机
只需要把特定名称和ip地址修改成对应虚拟机名称即可

#集群名称
cluster.name: cluster-es 
#节点名称,每个节点的名称不能重复
node.name: node-2
#ip地址,每个节点的地址不能重复
network.host: july2
#是不是有资格主节点
node.master: true 
node.data: true 
http.port: 9200 
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*" 
http.cors.enabled: true 
http.max_content_length: 200mb 
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-2"] 
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["july1:9300","july2:9300","july3:9300"] 
gateway.recover_after_nodes: 2 
network.tcp.keep_alive: true 
network.tcp.no_delay: true 
transport.tcp.compress: true 
#集群内同时启动的数据任务个数,默认是 2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16 
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4个
cluster.routing.allocation.node_concurrent_recoveries: 16 
#初始化数据恢复时,并发恢复线程的个数,默认 4个
cluster.routing.allocation.node_initial_primaries_recoveries: 16 
  • 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
#集群名称
cluster.name: cluster-es 
#节点名称,每个节点的名称不能重复
node.name: node-3
#ip地址,每个节点的地址不能重复
network.host: july3
#是不是有资格主节点
node.master: true 
node.data: true 
http.port: 9200 
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*" 
http.cors.enabled: true 
http.max_content_length: 200mb 
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-3"] 
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["july1:9300","july2:9300","july3:9300"] 
gateway.recover_after_nodes: 2 
network.tcp.keep_alive: true 
network.tcp.no_delay: true 
transport.tcp.compress: true 
#集群内同时启动的数据任务个数,默认是 2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16 
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4个
cluster.routing.allocation.node_concurrent_recoveries: 16 
#初始化数据恢复时,并发恢复线程的个数,默认 4个
cluster.routing.allocation.node_initial_primaries_recoveries: 16 
  • 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

分别启动每台虚拟机,每台执行如下命令

bin/elasticsearch
  • 1

其余两台启动报错
在这里插入图片描述
从报错可以看出
vm.max_map_count = 65530这个还是配置小了
修改配置为(在root用户下修改,然后在july用户下再次启动即可)

vm.max_map_count = 262144
  • 1

重新加载

sysctl -p
  • 1

在这里插入图片描述
查询集群状态

http://192.168.11.137:9200/_cat/nodes
  • 1

在这里插入图片描述
集群搭建结束。

4.设置后台启动和开机自启(可选)

root用户下

cd /etc/init.d
  • 1
vim elasticsearch
  • 1

因为脚本需要使用非root用户,所以指定为july用户。还有es安装的地址
前三行内容
在这里插入图片描述

#!/bin/sh
# chkconfig: - 85 15
#description: elasticsearch
export ES_HOME=/opt/software/elasticsearch-7.6.1
case "$1" in
start)
    su july<<!
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
!
    echo "elasticsearch startup"
    ;;
stop)
    kill -9 `cat $ES_HOME/pid`
    echo "elasticsearch stopped"
    ;;
restart)
    kill -9 `cat $ES_HOME/pid`
    echo "elasticsearch stopped"
    su july<<!
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
!
    echo "elasticsearch startup"
    ;;
*)
    echo "start|stop|restart"
    ;;
esac
exit $?

  • 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
  • 30
  • 31

①设置可执行

chmod 777 elasticsearch
  • 1

配置开机启动相关
②添加系统服务

chkconfig --add elasticsearch    
  • 1

③启动服务

systemctl start elasticsearch
  • 1

④设置开机自启

chkconfig elasticsearch on     
systemctl enable elasticsearch 
  • 1
  • 2

root用户下分发脚本到其他两台虚拟机,然后执行①-④步即可

 xsync elasticsearch
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/126646
推荐阅读
相关标签
  

闽ICP备14008679号