搭建Elasticsearch5.6.8 分布式集群
集群搭建
1、master[192.168.101.175] 配置elasticsearch.yml
#集群名称 所有节点要相同 cluster.name: my-application #本节点名称 node.name: node-175 network.host: 0.0.0.0 http.port: 9200 # head插件设置 http.cors.enabled: true #设置可以访问的ip 这里全部设置通过 http.cors.allow-origin: "*" #作为master节点 node.master: true #是否存储数据 node.data: false #设置节点 访问的地址 设置master所在机器的ip discovery.zen.ping.unicast.hosts: ["192.168.101.175"]
2、node[192.168.101.177] 配置elasticsearch.yml
#集群名称 所有节点要相同 cluster.name: my-application #本节点名称 node.name: node-176 network.host: 0.0.0.0 http.port: 9200 # head插件设置 http.cors.enabled: true #设置可以访问的ip 这里全部设置通过 http.cors.allow-origin: "*" #作为master节点 node.master: false #是否存储数据 node.data: true #设置节点 访问的地址 设置master所在机器的ip discovery.zen.ping.unicast.hosts: ["192.168.101.175"]
3.node[192.168.101.177] 配置elasticsearch.yml
#集群名称 所有节点要相同 cluster.name: my-application #本节点名称 node.name: node-177 network.host: 0.0.0.0 http.port: 9200 # head插件设置 http.cors.enabled: true #设置可以访问的ip 这里全部设置通过 http.cors.allow-origin: "*" #作为master节点 node.master: false #是否存储数据 node.data: true #设置节点 访问的地址 设置master所在机器的ip discovery.zen.ping.unicast.hosts: ["192.168.101.175"]
4.集群搭建成功
elasticearch概念解释
Elasticsearch集群中有的节点一般有三种角色:master node、data node和client node。
1)master node——master节点点主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等。
2)client node——client 节点起到路由请求的作用,实际上可以看做负载均衡器。
3)data node——data 节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源;
定义发现的节点:
注意,分布式系统整个集群节点个数N要为奇数个!!
discovery.zen.ping.unicast.hosts: [" 110.10.11.130 :9300", "10.118.110.112:9300", "110.0.11.143:9300"]
是否参与master选举和是否存储数据
#node.master: true
#node.data: true
分片数和副本数
#index.number_of_shards: 5
#index.number_of_replicas: 1
让我们在包含一个空节点的集群内创建名为 blogs
的索引。索引在默认情况下会被分配5个主分片,但是为了演示目的,我们将分配3个主分片和一份副本(每个主分片拥有一个副本分片):
PUT /blogs { "settings" : { "number_of_shards" : 3, "number_of_replicas" : 1 } }
我们的集群现在是拥有一个索引的单节点集群。所有3个主分片都被分配在Node 1 。
Elasticsearch 禁止同一个分片的主分片和副本分片在同一个节点上,所以如果是一个节点的集群是不能有副本的。
ES集群是如何工作?
elasticsearch集群一旦建立起来以后,会选举出一个master,其他都为slave节点。
但是具体操作的时候,每个节点都提供写和读的操作。就是说,你不论往哪个节点中做写操作,这个数据也会分配到集群上的所有节点中。
资料
https://blog.csdn.net/yzhujue/article/details/53128813?utm_source=blogxgwz4
https://www.cnblogs.com/bigshark/p/7906421.html