Linux搭建es集群

今天写一篇Linux环境下搭建es集群文章,大家跟着步骤来,避免踩坑(自己踩过很多坑真的很烦很烦的),es集群是在单机版es的基础上的,所以下面我们先开始搭建单机版es。

重点声明一下虚拟机最好用CentOS7版本 不然中间会有很多坑 最好用7版本

步骤:

1、下载或者上传安装包(我这里用的Linux64(TAR)7.4.0版本 自带JDK) 安装包下载传送门
2、解压安装包
3、创建普通用户
4、为新用户授权
5、修改elasticsearch.yml文件
6、修改其他配置文件
7、启动elasticsearch
8、访问elasticsearch

一、ElasticSearch安装

1、上传ElasticSearch安装包到/opt目录下
可以用Xftp直接拖动安装包,方便快捷
在这里插入图片描述

2、执行解压操作,如下

#将elasticsearch-7.4.0-linux-x86_64.tar. gz解压到opt文件夹下. -C大写
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt

3、创建普通用户
因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

useradd icoding  #新增icoding用户
passwd  icoding  #为icoding用户设置密码
userde1 -r icoding   #如果错了可以删除再加
#为普通用户授权 否则无法运行es
cd /opt/
chown -R icoding:icoding elasticsearch-7.4.0

4、修改elasticsearch.yml文件

vi /opt/elasticsearch-7.4.0/config/elasticsearch.yml
# ================= Elasticsearch   configuration =================
cluster.name: icoding-course
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
network.host:设置为0.0.0.0允许外网访问
http.port: Elasticsearch的http访问端口
cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master

5、修改配置文件
新创建的icoding用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容

#切换到root用户
su root
#1.===最大可创建文件数太小======
vi /etc/security/limits.conf
#在文件末尾中增加下面内容
icoding soft nofile 65536
icoding hard nofile 65536
#====
vi /etc/security/limits.d/90-nproc.conf 
#在文件末尾中增加下面内容
icoding soft nofile 65536
icoding hard nofile 65536
*  hard    nproc     4096
#注:*代表Linux所有用户名称

#2.===最大虚拟内存太小====
vi /etc/sysctl.conf
#在文件中增加下面内容
vm.max_map_count=655360
#重新加载,输入下面命令:
sysctl -p

6、启动elasticsearch

su icoding
#切换到icoding用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动

二、访问elasticsearch

浏览器输入(自己虚拟器ip ifconfig命令查看)
http://192.168.200.130:9200/
1、在访问elasticsearch前,请确保防火墙是关闭的,执行命令:

#暂时关闭防火墙
systemctl stop firewalld
#或者
#永久设置防火墙状态
systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原

#以上命令关闭防火墙不管用试试下面这行
service iptables stop

到此 单机版es就配置完毕! 觉得凑乎的麻烦大家点个赞!不胜感激-,-

接下来我们接着配置es集群!

整体步骤

步骤如下:
1、拷贝opt目录下的elasticsearch-7.4.0安装包3个,分别命名:

elasticsearch-7.4.0-icoding1
elasticsearch-7.4.0-icoding2
elasticsearch-7.4.0-icoding3

·2、然后修改elasticsearch.yml文件。

·3、然后启动启动icoding1、icoding2、icoding3三个节点。

·4、打开浏览器输入: http://192.168.189.129:9201/_cat/health?v如果返回的node.total是3,代表集群搭建成功
在此,需要我们特别注意的是,像本文这样单服务器多节点(3个节点)的情况,仅供测试使用,集群环境如下:

cluster namenode nameIP Addrhttp端口/通信端口
icoding-esicoding1192.168.200.1309201 / 9700
icoding-esicoding1192.168.200.1309202 / 9800
icoding-esicoding1192.168.200.1309203 / 9900

1、拷贝副本

拷贝opt目录下的elasticsearch-7.4.0安装包3个,打开虚拟机到opt目录

执行拷贝三份

cd /opt
cp -r elasticsearch-7.4.0   elasticsearch-7.4.0-icoding1
cp -r elasticsearch-7.4.0   elasticsearch-7.4.0-icoding2
cp -r elasticsearch-7.4.0   elasticsearch-7.4.0-icoding3

2、修改elasticsearch.yml配置文件

1)、创建日志目录

cd /opt
mkdir logs
mkdir data
#授权给icoding用户
chown -R icoding:icoding ./logs
chown -R icoding:icoding ./data

打开elasticsearch.yml配置,分别配置下面三个节点的配置文件

vi /opt/elasticsearch-7.4.0-icoding1/config/elasticsearch.yml
vi /opt/elasticsearch-7.4.0-icoding2/config/elasticsearch.yml
vi /opt/elasticsearch-7.4.0-icoding3/config/elasticsearch.yml
## 集群名称,保证唯一
cluster.name: icoding-course
#### 节点名称,必须不一样
node.name: icoding-1
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 0.0.0.0
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x  之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x  之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
#数据和存储路径
path.data: /opt/data
path.logs: /opt/logs

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

2)、下面是elasticsearch-7.4.0-icoding1配置文件

cluster.name: icoding-course
node.name: icoding-1
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9700
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
path.data: /opt/data
path.logs: /opt/logs

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

3)、下面是elasticsearch-7.4.0-icoding2配置文件

cluster.name: icoding-course
node.name: icoding-2
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9800
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
path.data: /opt/data
path.logs: /opt/logs

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

4)、下面是elasticsearch-7.4.0-icoding3配置文件

cluster.name: icoding-course
node.name: icoding-3
node.master: true
node.data: true
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9203
transport.tcp.port: 9900
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
cluster.initial_master_nodes: ["icoding-1","icoding-2","icoding-3"]
path.data: /opt/data
path.logs: /opt/logs

#如果是CentOS 6版本  加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

5)、执行授权

在root用户下执行
chown -R icoding:icoding /opt/elasticsearch-7.4.0-icoding1
chown -R icoding:icoding /opt/elasticsearch-7.4.0-icoding2
chown -R icoding:icoding /opt/e1asticsearch-7.4.0-icoding3
如果有的日志文件授权失败,可使用(也是在root下执行)

cd /opt/elasticsearch-7.4.0-icoding1
chown -R icoding:icoding logs
cd /opt/elasticsearch-7.4.0-icoding2
chown -R icoding:icoding logs
cd /opt/elasticsearch-7.4.0-icoding3
chown -R icoding:icoding logs

6)、设置ES的JVM占用内存参数

启动之前,设置ES的JVM占用内存参数,防止内存不足错误

vi /opt/elasticsearch-7.4.0-icoding1/config/jvm.options
vi /opt/elasticsearch-7.4.0-icoding2/config/jvm.options
vi /opt/elasticsearch-7.4.0-icoding3/config/jvm.options

默认情况下,ES启动JVM最小内存1G,最大内存1G

-Xms256m
-Xmx256m

尽量全部修改为256m

7)、访问节点
依次启动我们搭建的es(切换为普通用户再启动)

cd /opt/elasticsearch-7.4.0-icoding1/bin/
./elasticsearch
cd /opt/elasticsearch-7.4.0-icoding2/bin/
./elasticsearch
cd /opt/elasticsearch-7.4.0-icoding3/bin/
./elasticsearch

8)、查看集群状态
打开浏览器输入:http://192.168.189.129:9201/_cat/health?v,如果返回的node.total是3,代表集群搭建成功

到此,es集群搭建完毕,感谢大家的耐心,感谢点赞-,-,在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐