Elastic Search搭建集群环境

搭建ES集群环境

Elastic Search搭建集群环境的方式有两种

  • 多机器单实例
  • 单机器多实例

首先,我们要了解怎么安装单机版ES实例,安装教程参见博文----《Elastic Search入门》

多机器单实例

安装前准备

  1. 首先,我们准备三台机器
    1. 192.168.94.121(node1)
    2. 192.168.94.122(node2)
    3. 192.168.94.123(node3)
  2. 然后将软件安装包下载下来,上传到服务器然后解压到**/apps/elasticsearch-7.6.0目录下,分别修改/apps/elasticsearch-7.6.0/config目录下的elasticsearch.yml**文件,如下所示

192.168.94.121 elasticsearch.yml

cluster.name: monk
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
#参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群。
cluster.initial_master_nodes: ["node-1"]
# 设置新节点被启动时能够发现的主节点列表(主要用于不同网段机器连接)
discovery.zen.ping.unicast.hosts: ["192.168.94.121","192.168.94.122","192.168.94.123"]
# 该参数就是为了防止”脑裂”的产生。定义的是为了形成一个集群,有主节点资格并互相连接的节点的最小数目。
discovery.zen.minimum_master_nodes: 2
# 解决跨域问题配置
http.cors.enabled: true
http.cors.allow-origin: "*"

192.168.94.122 elasticsearch.yml

cluster.name: monk
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
#参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群。
cluster.initial_master_nodes: ["node-1"]
# 设置新节点被启动时能够发现的主节点列表(主要用于不同网段机器连接)
discovery.zen.ping.unicast.hosts: ["192.168.94.121","192.168.94.122","192.168.94.123"]
# 该参数就是为了防止”脑裂”的产生。定义的是为了形成一个集群,有主节点资格并互相连接的节点的最小数目。
discovery.zen.minimum_master_nodes: 2
# 解决跨域问题配置
http.cors.enabled: true
http.cors.allow-origin: "*"

192.168.94.123 elasticsearch.yml

cluster.name: monk
node.name: node-3
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
#参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群。
cluster.initial_master_nodes: ["node-1"]
# 设置新节点被启动时能够发现的主节点列表(主要用于不同网段机器连接)
discovery.zen.ping.unicast.hosts: ["192.168.94.121","192.168.94.122","192.168.94.123"]
# 该参数就是为了防止”脑裂”的产生。定义的是为了形成一个集群,有主节点资格并互相连接的节点的最小数目。
discovery.zen.minimum_master_nodes: 2
# 解决跨域问题配置
http.cors.enabled: true
http.cors.allow-origin: "*"

集群效果

然后分别启动每台服务器的Elastic Search即可,最终效果如图所示:集群效果1

单机器多实例

所谓单机器多实例的意思就是在一台服务器上运行多个ES[^1]实例,来达到“多机器”的效果。而单机器多实例又可以通过两种方式来实现:

  • 通过复制多个ES的实例来实现
  • 通过启动命令的不同来实现启动多个实例

PS:由于是在一台机器上启动三个实例,而每个ES启动的默认JVM内存分配的是1G,如果虚拟机内存分配的足够大,就可以忽略这点。如果内存不足导致启动失败,可以参见这里修改下ES启动默认分配的内存

修改JVM实例

vim /apps/elasticsearch-7.6.0/config/jvm.options
将默认配置的1g修改为你虚拟机可以启动的内存大小,如图所示:修改JVM配置

安装好ES后,多实例的原理就在于ES可以通过指定数据目录、日志以及节点名称等参数来灵活的启动。下面我们就通过这样的方式来安装一个单机器多实例的ES集群环境。

通过复制多个ES的实例来实现

几乎和多机器单实例差不多,将ES的安装文件解压后,连同原件一共复制三份出来,分别放置/apps目下,如图所示:目录结构,再分别修改各个ES实例下config目录下的elasticsearch.yml文件

node-1 elasticsearch.yml
cluster.name: monk
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
cluster.initial_master_nodes: ["node-1"]
discovery.seed_hosts: ["192.168.94.123:9301","192.168.94.123:9302","192.168.94.123:9303"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
node-2 elasticsearch.yml
cluster.name: monk
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9202
transport.port: 9302
cluster.initial_master_nodes: ["node-1"]
discovery.seed_hosts: ["192.168.94.123:9301","192.168.94.123:9302","192.168.94.123:9303"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
node-3 elasticsearch.yml
cluster.name: monk
node.name: node-3
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9203
transport.port: 9303
cluster.initial_master_nodes: ["node-1"]
discovery.seed_hosts: ["192.168.94.123:9301","192.168.94.123:9302","192.168.94.123:9303"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
集群效果

然后分别启动每个实例下的的Elastic Search即可,最终效果如图所示:集群效果2

通过启动命令的不同来实现启动多个实例

这种情况下,我们就需要弄清楚一个ES实例下的文件夹分别是干嘛的,主要拿来存放各自实例的数据文件有两个,data目录就是主要存放数据的地方,logs目录则是存放运行日志的地方。然后加上ES提供可以通过在启动指令上给参数赋值来达到重写配置文件中值的方式启动,那我们可以将公共的参数配置放在config目录下的elasticsearch.yml,然后再通过给指令启动的方式给每个实例设置各自独有的属性。

创建各自实例独立的数据文件存放地址
mkdir -p /apps/cluster_elasticsearch/node1/data /apps/cluster_elasticsearch/node1/logs
mkdir -p /apps/cluster_elasticsearch/node2/data /apps/cluster_elasticsearch/node2/logs
mkdir -p /apps/cluster_elasticsearch/node3/data /apps/cluster_elasticsearch/node3/logs
修改公共的配置文件

修改公共实例的配置文件 /apps/elasticsearch-7.6.0/config/elasticsearch.yml,如下所示:

cluster.name: monk
network.host: 0.0.0.0
#参数设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群。
cluster.initial_master_nodes: ["node-1"]
# 设置新节点被启动时能够发现的主节点列表(主要用于不同网段机器连接)
discovery.seed_hosts: ["192.168.94.123:9300", "192.168.94.123:9301", "192.168.94.123:9302"]
# 该参数就是为了防止”脑裂”的产生。定义的是为了形成一个集群,有主节点资格并互相连接的节点的最小数目。
discovery.zen.minimum_master_nodes: 2
# 解决跨域问题配置
http.cors.enabled: true
http.cors.allow-origin: "*"
通过不同的启动命令来启动每个实例节点

进入公共实例的bin目录下,执行以下命令
cd /apps/elasticsearch-7.6.0/bin

./elasticsearch  -d -E node.name=node-1 -E http.port=9200 -E transport.port=9300 -E path.data=/apps/cluster_elasticsearch/node1/data -E path.logs=/apps/cluster_elasticsearch/node1/logs
./elasticsearch  -d -E node.name=node-2 -E http.port=9201 -E transport.port=9301 -E path.data=/apps/cluster_elasticsearch/node2/data -E path.logs=/apps/cluster_elasticsearch/node2/logs
./elasticsearch  -d -E node.name=node-3 -E http.port=9202 -E transport.port=9302 -E path.data=/apps/cluster_elasticsearch/node3/data -E path.logs=/apps/cluster_elasticsearch/node3/logs
集群效果

启动成功后,效果如图所示:集群效果3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值