个人笔记之Elasticsearch集群搭建
1. 解压
前置:相互免秘钥配置完成
下载ES的压缩包,放到node01中(ftp就可以,很方便)
我这里下载的是:elasticsearch-7.4.2-linux-x86_64.tar.gz
解压安装包:
将目标文件夹解压到当前路径下
tar -xvf elasticsearch-7.4.2-linux-x86_64.tar.gz
然后桌面上会多一个es的文件夹,这就表明这个软件其实已经安装好了,接下来就需要配置了。
2.配置
2.1 创建软件安装目录
首先创建一个用来存放软件的文件夹
mkdir /opt/cl
然后把文件夹移动到该路径下
mv elasticsearch-7.4.2 /opt/cl/
2.2 修改环境变量
然后先修改一下es环境变量:
cd /opt/cl/elasticsearch-7.4.2/bin
vim elasticsearch-env
在上面加:
JAVA_HOME="/opt/cl/elasticsearch-7.4.2/jdk/"
2.3 更改垃圾回收器配置
因为es
自带的JDK
版本为java11
,而在java9
开始CMS
垃圾收集器就被过时了(不影响使用,但以后最好少用),java11
支持的垃圾回收器有GC
和G1
,所以这里要修改一下相应的配置参数:
cd ../config
vim jvm.options
将-XX:+UseConcMarkSweepGC
替换为-XX:+UseG1GC
(在编辑模式下输入:/-XX:+UseConcMarkSweepGC
回车可查找该字段)
保存退出,进入下一步
2.4 修改yml配置参数
vim elasticsearch.yml
然后开始修改:
# ------------------- Cluster -------------------
cluster.name: es-node
# ------------------- Node ----------------------
node.name: es-node01
# --------------------s- Network ----------------
network.host: 0.0.0.0
http.port: 9200
# -------------------- Discovery ----------------
discovery.seed_hosts: ["node01", "node02","node03"]
cluster.initial_master_nodes: ["es-node01", "es-node02","es-node03"]
client.transport.ping_timeout: 60s
# -------------------- 跨域第三方插件可以请求es -----
http.cors.enabled: true
http.cors.allow-origin: "*"
注:初始文件中处于全部注释的状态下的话,可以直接插入进去。
改完了保存退出
2.5 配置全局文件变量
vim /etc/profile
添加:
export ES_HOME=/opt/cl/elasticsearch-7.4.2
export PATH=$ES_HOME/bin:$PATH
添加完了保存退出,再让配置文件生效:
source /etc/profile
2.6 创建es用户并修改相应配置权限等
注:(每台都要有)
# 密码--123456
useradd es
passwd es
# 修改文件夹所属
chown -Rf es:es /opt/cl/elasticsearch-7.4.2
vim /etc/security/limits.conf
添加:
es soft nofile 65535
es hard nofile 65535
es soft nproc 4096
es hard nproc 4096
2.7 修改最大虚拟内存区域
vim /etc/sysctl.conf
添加:
vm.max_map_count = 262144
需要手动执行,重新加载虚拟内存
sysctl -p
好了,至此一台虚拟机上的Es就搭好了,接下来就方便多了,直接发送到其它虚拟机就行了
3. 配置其它虚拟机上的es
(偷个懒直接复制粘贴过来,其中1代表只有node1需要操作,123代表node123都要运行)
[1]scp -r /opt/cl/elasticsearch-7.4.2 node02:`pwd`
[1]scp -r /opt/cl/elasticsearch-7.4.2 node03:`pwd`
[1]scp /etc/profile node02:/etc/profile
[1]scp /etc/profile node03:/etc/profile
[123] source /etc/profile
[1]scp /etc/security/limits.conf node02:/etc/security/limits.conf
[1]scp /etc/security/limits.conf node03:/etc/security/limits.conf
[1]scp /etc/sysctl.conf node02:/etc/sysctl.conf
[1]scp /etc/sysctl.conf node03:/etc/sysctl.conf
[123]sysctl -p
在JVM设置中修改节点名:
cd /opt/cl/elasticsearch-7.4.2/config
vim elasticsearch.yml
# ---------- Node -----------
[2]node.name: node02
[3]node.name: node03
4. 启动集群
现在,全体输入:
su es
elasticsearch
然后静候集群启动,等启动完了以后,去浏览器
可以先下载一个Elasticsearch的插件,没有的话也可以直接手动输入
http://192.168.251.101:9200/
如果装了插件就能看到这个:
ES集群就搭起来了
而如果此时突然关掉node01,没关系,还可以连node02,集群会自动选举出主节点(不过要改IP):