1 环境

  这里使用的是虚拟机,系统是centos7,jdk11,es7.6.2

 

2 虚拟机安装centos及静态ip配置

  虚拟机安装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,说明成功