1 环境
这里使用的是虚拟机,系统是centos7,jdk11,es7.6.2
2 虚拟机安装centos及静态ip配置
3 JDK安装配置
4 先安装单机版的
4.1 上传es的压缩包并解压
tar -zxvf elasticsearch-7.6.2
4.2 配置文件
进入config目录
cd elasticsearch-7.6.2/config/
修改elasticsearch.yml
vi elasticsearch.yml
添加以下配置
# ================= Elasticsearch configuration =================
cluster.name: jcc_es_cluster
node.name: es_node_01
network.host: 0.0.0.0
http.port: 9201
cluster.initial_master_nodes: ["es_node_01"]
#如果是CentOS 6版本 加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
1)cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
2)node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
3)network.host:设置为0.0.0.0允许外网访问
4)http.port::Elasticsearch的http访问端口
5)cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master
4.3 添加普通用户
因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令
passwd icoding #为icoding用户设置密码
passwd icoding #为icoding用户设置密码
#为这个用户授权
chown -R icoding:icoding /usr/local/programs/elasticsearch-7.6.2
4.4 为普通用户做更多配置
新创建的icoding用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件,添加类似如下内容
4.4.1 最大可创建文件数太小配置
#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所有用户名称
4.4.2 最大虚拟内存太小配置
#2.===最大虚拟内存太小====
vi /etc/sysctl.conf
#在文件中增加下面内容
vm.max_map_count=655360
#重新加载,输入下面命令:
sysctl -p
4.5 启动
4.5.1 切换到icoding用户启动
su icoding
4.5.2 启动
cd /usr/local/programs/elasticsearch-7.6.2/bin
./elasticsearch
4.6 访问
http://192.168.28.110:9201/
4.7 启动遇到错误
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version
原因是垃圾回收器版本过低
进入 elasticsearch的config文件夹,修改配置文件jvm.options
把垃圾回收期修改为G1
5 配置集群
5.1 简要说明
总共三个节点:
es-node-01 192.168.28.110 9201 9700
es-node-02 192.168.28.111 9202 9800
es-node-03 192.168.28.112 9203 9900
5.2 在上面单机版的基础上修改配置文件
## 集群名称,保证唯一
cluster.name: jcc_es_cluster
#### 节点名称,必须不一样
node.name: es_node_01
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 192.168.28.110
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.28.110:9700","192.168.28.111:9800","192.168.112:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["es_node_01","es_node_02","es_node_03"]
#如果是CentOS 6版本 加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#数据和日志路径-也可以不配置采用默认的路径(需要先创建文件夹,它不会自动创建)
#path.logs: /usr/local/es/log
#path.data: /usr/local/es/data
#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
5.3 清空data和logs
删除data文件夹下的所有文件,因为下面要复制过去的,不清空会有id重复的问题
5.4 克隆虚拟机
先关机,再右键虚拟机实例ES-NODE01,选择管理,选择克隆
下一步
选择创建完成克隆
填写名称和路径
完成克隆
5.5 进入新的虚拟机,配置ip
把ip修改为192.168.28.111
5.6 修改es配置文件
# ================= Elasticsearch configuration =================
## 集群名称,保证唯一
cluster.name: jcc_es_cluster
#### 节点名称,必须不一样
node.name: es_node_02
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 192.168.28.111
#端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9800
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.28.110:9700","192.168.28.111:9800","192.168.112:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["es_node_01","es_node_02","es_node_03"]
#如果是CentOS 6版本 加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
5.7 重复上面的操作,再克隆一个
修改ip为192.168.28.112
5.8 修改es配置文件
# ================= Elasticsearch configuration =================
## 集群名称,保证唯一
cluster.name: jcc_es_cluster
#### 节点名称,必须不一样
node.name: es_node_03
#是不是有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3
#ip地址.
network.host: 192.168.28.112
#端口
http.port: 9203
#内部节点之间沟通端口
transport.tcp.port: 9900
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.28.110:9700","192.168.28.111:9800","192.168.112:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要次配置来选举master
cluster.initial_master_nodes: ["es_node_01","es_node_02","es_node_03"]
#如果是CentOS 6版本 加入以下两行
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
5.9 全部切换到用户icoding
su icoding
5.10 全部进入bin目录
cd /usr/local/programs/elasticsearch-7.6.2/bin
5.11 启动
./elasticsearch
5.12 访问
发现node.total是3,说明成功