欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch 5.x分布式集群

程序员文章站 2022-06-21 14:45:36
...

集群角色

多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点。Zen发现是ES自带的默认发现机制,使用多播发现其它节点。只要启动一个新的ES节点并设置和集群相同的名称这个节点就会被加入到集群中。

Elasticsearch集群中有的节点一般有三种角色:

  1. master node: master几点主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等。
  2. data node: data 节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源;
  3. client node: client 节点起到路由请求的作用,实际上可以看做负载均衡器。( 对于没有很多请求的业务,client node可以不加,master和data足矣)

基于5.x的多机集群配置

ELasticsearch 5.x要求JDK版本最低为1.8。

CentOS7 机器1的ip为192.168.235.32,设为master节点,配置如下:

cluster.name: my-application
node.name: node-1

network.host: 192.168.235.32
http.port: 9200

http.cors.enabled: true
http.cors.allow-origin: "*"

node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.235.32"]

CentOS7 机器1的ip位192.168.235.22,设为slave节点,配置如下:

cluster.name: my-application
node.name: node-2

network.host: 192.168.235.22
http.port: 9200

http.cors.enabled: true
http.cors.allow-origin: "*"

node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.235.32"]

先启动 CentOS7 机器1的master节点,再启动CentOS7 机器2上的slave节点,观察输出,会有一个node-102探测到master节点的提示:

2017-06-07T11:33:39,369][INFO ][o.e.c.s.ClusterService   ] [node-102] detected_master {node-111}{3dQd1RRVTMiKdTckM68nPQ}{H6Zu7PAQRWewUBcllsQWTQ}{192.168.1.111}{192.168.1.111:9300}, added {{node-111}{3dQd1RRVTMiKdTckM68nPQ}{H6Zu7PAQRWewUBcllsQWTQ}{192.168.1.111}{192.168.1.111:9300},}, reason: zen-disco-receive(from master [master {node-111}{3dQd1RRVTMiKdTckM68nPQ}{H6Zu7PAQRWewUBcllsQWTQ}{192.168.1.111}{192.168.1.111:9300} committed version [8]])'

基于5.x的单机多节点集群配置

如果想要在一台机器上启动多个节点,步骤如下:

  1. 复制一份ELasticsearch的安装包
  2. 修改端口,比如一个是9200,一个是9201
  3. 删除data目录下的数据(如果是新解压的安装包就不必了)

master配置

cluster.name: my-application
node.name: node-1

network.host: 192.168.235.32
http.port: 9201

http.cors.enabled: true
http.cors.allow-origin: "*"

node.master: true
node.data: true

slave配置

cluster.name: my-application
node.name: node-2

network.host: 192.168.235.32
http.port: 9202

http.cors.enabled: true
http.cors.allow-origin: "*"

node.master: false
node.data: true

启动

先启动 master ,再启动 slave.

分别访问:

http://192.168.235.32:9201

http://192.168.235.32:9202

确定启动成功后,打开插件,使用图形界面管理

插件地址:https://github.com/mobz/elasticsearch-head

Elasticsearch 5.x分布式集群

相关标签: elasticsearch