1、集群角色

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

    Elasticsearch集群中节点一般有三种角色:master node、data node和client node。

    (1)master node。master节点主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等。

    (2)data node。data节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源;

    (3)client  node。client节点起到路由请求的作用,实际上可以看做负载均衡器。( 对于没有很多请求的业务,client node可以不加,master和data足矣)。

2、多机集群配置

现有三台服务器分别安装一个es节点,这三个节点组成一个es集群。因为是小集群,因此设置这三个节点都可作为master节点和data节点。服务器的ip分别为192.168.1.111、192.168.1.112和192.168.1.113。集群节点配置如下所示。

    (1)ip为192.168.1.111的节点配置如下。

#集群名
cluster.name: my-application
#节点名
node.name: node-111

#节点ip
network.host: 192.168.1.111
#设置对外服务的http端口,默认为9200
http.port: 9200
#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300

#是否允许跨域REST请求
http.cors.enabled: true
#允许 REST 请求来自何处
http.cors.allow-origin: "*"

#节点角色设置
node.master: true
node.data: true

#有成为主节点资格的节点列表
discovery.zen.ping.unicast.hosts: ["192.168.1.111:9300","192.168.1.112:9300","192.168.1.113:9300"]
#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (total number of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2

    (2)ip为192.168.1.112的节点配置如下。

#集群名
cluster.name: my-application
#节点名
node.name: node-112

#节点ip
network.host: 192.168.1.112
#设置对外服务的http端口,默认为9200
http.port: 9200
#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300

#是否允许跨域REST请求
http.cors.enabled: true
#允许 REST 请求来自何处
http.cors.allow-origin: "*"

#节点角色设置
node.master: true
node.data: true

#有成为主节点资格的节点列表
discovery.zen.ping.unicast.hosts: ["192.168.1.111:9300","192.168.1.112:9300","192.168.1.113:9300"]
#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (total number of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2

    (3)ip为192.168.1.113的节点配置如下。

#集群名
cluster.name: my-application
#节点名
node.name: node-113

#节点ip
network.host: 192.168.1.113
#设置对外服务的http端口,默认为9200
http.port: 9200
#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300

#是否允许跨域REST请求
http.cors.enabled: true
#允许 REST 请求来自何处
http.cors.allow-origin: "*"

#节点角色设置
node.master: true
node.data: true

#有成为主节点资格的节点列表
discovery.zen.ping.unicast.hosts: ["192.168.1.111:9300","192.168.1.112:9300","192.168.1.113:9300"]
#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (total number of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2

3、单机集群配置

    如果想要在一台机器上创建es集群,步骤如下:

    (1)复制一份ELasticsearch的安装包;

    (2)修改es配置文件

        修改es对外服务的http端口,比如一个是9200,一个是9201,一个是9203;

        修改es节点之间交互的tcp端口,比如一个是9300,一个是9301,一个是9303;



    (3)删除data目录下的数据(如果是新解压的安装包就不必了)。

4、参考文献

(1)点击打开链接

(2)点击打开链接