4. es集群搭建

es集群搭建

一 . 单机集群搭建 - windows

单机集群部署,需要通过设置不同的IP和集群IP来实现区分各节点。

windows单机集群的特点是,搭建简单,好理解,能快速入门,了解es集群的特点。
搭建环境: win10 + elasticsearch-6.8.0 + kibana-6.8.0

1.windows安装JAVA环境

1.下载点击jdk-8u201-windows-x64.exe安装Java,Java目录下会有两个目录: jdk,jre
2.配置环境变量:
	- 此电脑 -> 右键属性 -> 高级系统设置 -> 环境变量 -> 系统变量
	- 新建系统变量:
		变量名:JAVA_HOME
		变量值:安装Java目录下的jdk
    - 点击Path,编辑环境变量,新建-> %JAVA_HOME%in  相当jdk目录下的bin
3.检查:
	win+R -> cmd -> java -version

2.创建es集群节点

为了便于管理,我在E盘的根目录下创建一个es_cluster目录,然后将elasticsearch压缩包和kibana压缩包解压到该目录内,并且对es节点重命名node-1,node-2,node-3

我们为这个集群增加一些单播配置,打开各节点内的configelasticsearch.yml文件。每个节点的配置如下:

node-1

cluster.name: s33   # 集群名称要一致
node.name: node-1 # 节点名称
network.host: 127.0.0.1 
http.port: 9200  # 监听端口
transport.tcp.port: 9300  # 广播端口,集群端口
#  ping地址
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2   # 脑裂值 = 节点数 // 2 + 1
node.master: true  # 是否允许成为主节点
node.data: false  # 是否允许储存数据

node-2

cluster.name: s33
node.name: node-2
network.host: 127.0.0.1
http.port: 9201
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
node.master: true
node.data: true

node-3

cluster.name: s33
node.name: node-3
network.host: 127.0.0.1
http.port: 9202
transport.tcp.port: 9302
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
node.master: false
node.data: true

运行es: 右键各个节点inelasticsearch.bat以管理员身份打开

查看节点:

​ 1.使用elasticsearch head浏览器插件,输入监听端口http://127.0.0.1:9200

​ 2.使用kibana查看,编辑配置文件configkibana.yml

# 监听es地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]

​ 3.运行kibana,右键binkibana.bat以管理员身份打开

​ 4.浏览器输入网址: 127.0.0.1:5601

二 . 多机集群搭建 - centOS

搭建环境:centos7.9 + elasticsearch-6.8.15
演示如何在三台服务器上搭建es集群,基于rpm包的安装方式。
复制三台centOS7.9虚拟机,分别为node-1,node-2,node-3三个节点

环境部署

集体环境部署 - 三台虚拟机都需要部署

1.安装上传下载与不全功能:

yum install lrzsz bash-completion -y

2.JAVA环境安装:

yum install java-1.8.0-openjdk.x86_64 -y
查看:
java -version

3.安装elasticsearch

1.上传或下载rpm包
[root@cs ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.15.rpm
[root@cs ~]# rz
2.解压
[root@cs tmp]# rpm -ivh elasticsearch-6.8.15.rpm  
[root@cs tmp]# systemctl daemon-reload
删除安装包
[root@cs tmp]# rm -rf elasticsearch-6.8.15.rpm
查看elasticsearch目录
[root@cs tmp]# rpm -qc elasticsearch

4.更改目录权限:

​ 注意: elasticsearch服务的运行需要以非root权限运行,但rpm安装时,默认帮我们创建了一个elasticsearch用户,所以,接下来,这里,我手动创建一个数据文件目录,然后给相关目录进行授权:

mkdir -p /data/elasticsearch
chown -R elasticsearch:elasticsearch /data/elasticsearch/
chmod -R g+s  /data/elasticsearch/
chown -R elasticsearch:elasticsearch /etc/elasticsearch/
chown -R elasticsearch:elasticsearch /etc/init.d/elasticsearch 
chown -R elasticsearch:elasticsearch /etc/sysconfig/elasticsearch 
chown -R elasticsearch:elasticsearch /var/log/elasticsearch/
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/
chown -R elasticsearch:elasticsearch /usr/lib/sysctl.d/elasticsearch.conf   
chown -R elasticsearch:elasticsearch /usr/lib/systemd/system/elasticsearch.service 

5.为了后续能正常启动集群,需要提前对系统参数和内核参数做些配置。

修改系统参数:

[root@cs tmp]# vim /etc/security/limits.conf

# 可打开的文件句柄最大数
* soft nofile 65535
* hard nofile 65535
# 单个用户可用的最大进程数
* soft nproc 4096
* hard nproc 4096
# 可打开的文件描述符的最大数,unlimited:无限制
* soft memlock unlimited
* hard memlock unlimited

修改内核参数:

[root@cs tmp]# vim /etc/sysctl.conf

# JAM能开启的最大线程数
vm.max_map_count = 262144

[root@cs tmp]# sysctl -p    # 使修改的内核参数生效
vm.max_map_count = 262144

6.为了避免内存锁定失败,还需要编译文件输入内容:

[root@cs tmp]# sudo systemctl edit elasticsearch

[Service]
LimitMEMLOCK=infinity

[root@cs tmp]# sudo systemctl daemon-reload

节点配置

node-1
# 复制 清空 编辑 elasticsearch配置文件
[root@cs tmp]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@cs tmp]# > /etc/elasticsearch/elasticsearch.yml
[root@cs tmp]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my_cluster  # 集群名称
node.name: node-1         # 节点名称
node.master: true		# 是否允许做主节点
node.data: true			# 是否允许储存数据
path.data: /data/elasticsearch  # 数据储存目录
path.logs: /var/log/elasticsearch # 日志目录
bootstrap.memory_lock: true  # 是否锁定内存
network.host: 192.168.189.132,127.0.0.1  # 监听地址 - 虚拟机ip地址
http.port: 9200 # 监听端口
discovery.zen.ping.unicast.hosts: ["192.168.189.132", "192.168.189.133", "192.168.189.134"]  # ping地址:三个虚拟机地址
http.cors.enabled: true
http.cors.allow-origin: "*"
# discovery.zen.minimum_master_nodes: 2  # 脑裂值,先注释掉,集群搭建成功,再解开注释
node-2
# 与node-1相比,质数改变了节点名称和ip地址
# 复制 清空 编辑 elasticsearch配置文件
[root@cs tmp]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@cs tmp]# > /etc/elasticsearch/elasticsearch.yml
[root@cs tmp]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my_cluster  
node.name: node-2         
node.master: true		
node.data: true			
path.data: /data/elasticsearch 
path.logs: /var/log/elasticsearch 
bootstrap.memory_lock: true  
network.host: 192.168.189.133,127.0.0.1  
http.port: 9200 
discovery.zen.ping.unicast.hosts: ["192.168.189.132", "192.168.189.133", "192.168.189.134"]  
http.cors.enabled: true
http.cors.allow-origin: "*"
# discovery.zen.minimum_master_nodes: 2  
node-3
# 与node-1相比,质数改变了节点名称和ip地址
# 复制 清空 编辑 elasticsearch配置文件
[root@cs tmp]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@cs tmp]# > /etc/elasticsearch/elasticsearch.yml
[root@cs tmp]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my_cluster  
node.name: node-3         
node.master: true		
node.data: true			
path.data: /data/elasticsearch  
path.logs: /var/log/elasticsearch 
bootstrap.memory_lock: true  
network.host: 192.168.189.134,127.0.0.1 
http.port: 9200 
discovery.zen.ping.unicast.hosts: ["192.168.189.132", "192.168.189.133", "192.168.189.134"]  
http.cors.enabled: true
http.cors.allow-origin: "*"
# discovery.zen.minimum_master_nodes: 2  

启动es服务

[root@cs tmp]# systemctl start elasticsearch 
[root@cs tmp]# systemctl status elasticsearch 
[root@cs tmp]# curl http://127.0.0.1:9200 
{
  "name" : "node-2",
  "cluster_name" : "my_cluster",
  "cluster_uuid" : "sPQePmgpSi6c9AQkpWm6oA",
  "version" : {
    "number" : "6.8.15",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "c9a8c60",
    "build_date" : "2021-03-18T06:33:32.588487Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.3",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

[root@cs tmp]# curl http://127.0.0.1:9200/_cat/nodes  # 查看集群节点
或者使用elasticsearch head 插件查看节点 输入: http://192.168.189.132:9200
原文地址:https://www.cnblogs.com/jia-shu/p/14805496.html