Elasticsearch个人心得笔记(五) 港控/mmm° 2022-01-21 08:13 324阅读 0赞 # Elasticsearch集群 # -------------------- **目录** Elasticsearch集群 一.集群的结构和角色 1.结构 2.角色和任务(elaticsearch.yml) 二.配置搭建三个节点的集群 1.前提条件注意 2.配置集群的配置文件 1.每个节点指定协调器的list(elasticsearch.yml) 2.修改对应配置 3.防止集群发生"脑裂",为集群配置最大的有效master个数 3.启动集群的所有节点 1.类bully(RBULLY)算法将master选举出来(master参加) 2.先启动Head插件观察 3.启动第一个ES 4.启动成功,一直循环读取 5.启动第二个节点 6.启动成功 7.HEAD插件查看 8.启动第三个节点 9.启动成功 10.head查看 11.在进群中连接负载均衡器写入一些数据(index01,index02) -------------------- # 一.集群的结构和角色 # ## 1.结构 ## ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70][] ## 2.角色和任务(elaticsearch.yml) ## * **node.master: true 主节点相关** * **node.data: true 数据节点相关** * **node.ingest: true 负载均衡节点相关** **默认的一个es节点具备master角色,data节点角色,负载均衡器** * master角色:管理真个集群的meta data(元数据);元数据:描述数据本身的信息形成的内容称之为元数据.多个master形成的集群(保证高可用)同一时间只有一个主节点(具备master角色能力的节点,会进行选举),剩下的主节点进行meta data 的数据备份. * data角色:就是负责master计算后交给他的与数据有关的任务(读写操作) * 负载均衡器:外界连接的es节点,负责和master内部通信,获取信息; * 协调器:任何一个es节点无论你的master,data,ingest的值是true还是false都可以成为一个集群的协调器(发现节点功能) # 二.配置搭建三个节点的集群 # ## 1.前提条件注意 ## **ik分词器(造成其他节点同步数据时,没有ik分词器的错误)保持一致;** **如果你将ik分词器删除,保证之前使用ik分词器的所有相关数据(索引)也要删除.** * **\[root@10-42-60-249 elasticsearch-5.5.2\]\# rm -rf data** * **\[root@10-42-60-249 elasticsearch-5.5.2\]\# rm -rf \*** * **\[root@10-42-60-249 elasticsearch-5.5.2\]\# rm -rf logs/** ## 2.配置集群的配置文件 ## * 保证集群名称一致elasticsearch * 保证节点名称不一致es01 es02 es03 ### 1.每个节点指定协调器的list(elasticsearch.yml) ### **每一个的名称都要不同** ![20190609105700457.png][] ![20190609105605620.png][] ### 2.修改对应配置 ### ![20190609105551999.png][] ### 3.防止集群发生"脑裂",为集群配置最大的有效master个数 ### **公式: 所有master个数/2+1(过半数) 3个配置俩个即可** ![20190609110119804.png][] **修改一下配置** ![20190609110217128.png][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 1][] 由于网络波动,形成多个大脑指挥, * **在master集群中,本来应该互相有效通信的集群,出现波动后,形成2个多个master集群,同时操作dataNode节点们,可能造成执行的命令冲突导致数据错乱---集群的脑裂;** * **ES防止脑裂的出现,就是利用最小master数量过半定义的.** * **结论:在ES防止脑裂的配置过半master后,集群无论如何出现脑裂的情况,至多只有一个有效的master集群满足最小master数量;** ## 3.启动集群的所有节点 ## ### 1.类bully(RBULLY)算法将master选举出来(master参加) ### * 1 启动的master节点到协调器获取集群所有master信息(id) * 2 如果activeMaster(正在提供主节点的信息list),有值,说明集群已经选举完毕master.如果有就选举完毕 * 3 如果activeMaster中没有数据是空(获取断开剔除),没有值(节点信息),将会把从协调器获取的所有master信息放到后补list candidateMaster. * 4 判断candidateMaster里面存储的master节点数量是否满足最小master有效数量 * 5 如果不满足,从新回到第一步 * 6 如果满足,从里面将id值最小的master选举成为activeMaster的值 **最终集群中activeMaster里的节点,就是被选举出来的主节点.** ### **2.先启动Head插件观察** ### ![20190609111340499.png][] ### **3.启动第一个ES** ### ### ![2019060911154146.png][] ### ### **4.启动成功,一直循环读取** ### **![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 2][]** * **1 启动的master节点到协调器获取集群所有master信息(id) 满足,因为初始设置的为主节点(因为只启动一个,只有一个主节点)** * **2 如果activeMaster(正在提供主节点的信息list),有值,说明集群已经选举完毕master.如果有就选举完毕 不满足(刚启动,没有选举完毕,)** * **3 如果activeMaster中没有数据是空(获取断开剔除),没有值(节点信息),将会把从协调器获取的所有master信息放到后补list candidateMaster. 满足 (有且只要一个)** * **4 判断candidateMaster里面存储的master节点数量是否满足最小master有效数量 不满足(最小maste设置为2,目前只为1)** * **5 如果不满足,从新回到第一步 不满足(重新获取) ** * **6 如果满足,从里面将id值最小的master选举成为activeMaster的值 不执行** **所以目前,只做一到四的循环读取** ### **5.启动第二个节点** ### ### ![20190609112258422.png][] ### ### **6.启动成功** ### ![20190609112525872.png][] * **1 启动的master节点到协调器获取集群所有master信息(id) 满足,因为初始设置的为主节点(启动二个,有二个主节点)** * **2 如果activeMaster(正在提供主节点的信息list),有值,说明集群已经选举完毕master.如果有就选举完毕 不满足(刚启动,没有选举完毕,)** * **3 如果activeMaster中没有数据是空(获取断开剔除),没有值(节点信息),将会把从协调器获取的所有master信息放到后补list (防止一次放进多个)candidateMaster. 满足 (有二个)** * **4 判断candidateMaster里面存储的master节点数量是否满足最小master有效数量 满足(最小maste设置为2)** * **5 如果不满足,从新回到第一步 满足 ** * **6 如果满足,从里面将id值最小的master选举成为activeMaster的值 ** **满足** **所以目前,做一到六的读取 ** ### **7.HEAD插件查看** ### ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 3][] **选出01做主节点** ### **8.启动第三个节点** ### ![20190609112702611.png][] ### **9.启动成功** ### ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 4][] **因为选举已经结束,所以不会改变结果** ### **10.head查看** ### ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 5][] ### 11.在进群中连接负载均衡器写入一些数据(index01,index02) ### **\#curl -XPUT [http://IP:9200/index06][http_IP_9200_index06]** ![20190609113151748.png][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 6][] **实现高可用,当01宕机.02,03 选举id最小的顶替,** * **配置文件中的分片和副本默认值** * **index.number\_of\_shards: 5 ** * **设置索引的副本数,默认为1: ** * **index.number\_of\_replicas: 1 ** **index06在创建时,会经过master(activeMaster)根据配置文件计算** **分片数量,副本数量,记录metadata 将索引数据切分到datanode** **PS:分片无法控制,是选举的master负责分配** -------------------- **ES集群搭建完成** [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70]: /images/20220121/751113337a71420ca9bba97822c29bd2.png [20190609105700457.png]: /images/20220121/a7060f56effb41e8a2a5ae7dae12f33a.png [20190609105605620.png]: /images/20220121/5b55a0d77a614275a969c7f196ca07e8.png [20190609105551999.png]: /images/20220121/33eb0054af3949baab13d2e505212dce.png [20190609110119804.png]: /images/20220121/525e09d614f447cf9bceb2fa815853f6.png [20190609110217128.png]: /images/20220121/dc39beccaf03455e90cf9e3cad29ea49.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 1]: /images/20220121/43090be1ccd14951a96667ba6b315801.png [20190609111340499.png]: /images/20220121/d3067665f770414ebf66030336ee8bac.png [2019060911154146.png]: /images/20220121/e84af37f24a247f880125ebb5ba115f6.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 2]: /images/20220121/d6dc00e8b5104012a533378ef70bf8c4.png [20190609112258422.png]: /images/20220121/068da0268cff443185fcbb888dd93dce.png [20190609112525872.png]: /images/20220121/6959b62229d54999afa90c2da5e60266.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 3]: /images/20220121/135e9bd03bf14b839825ac989e097482.png [20190609112702611.png]: /images/20220121/c0090248041d46a2be4c7e0a227044aa.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 4]: /images/20220121/917ca84f4d28423da6c7f0b956de9bcf.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 5]: /images/20220121/21081796561f4bb7997072fd226dcf07.png [http_IP_9200_index06]: http://10.9.151.60:9200/index06 [20190609113151748.png]: /images/20220121/3f4f058594524531b85ee084672a3642.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 6]: /images/20220121/7fec5e8daa5840789758420f84f4cd61.png
相关 Nginx个人心得笔记 一.Nginx简介 目录 一.Nginx简介 1.nginx能干什么 2.nginx特点 二.Nginx能做什么有什么优势 二.项目部署 解压就可以用 妖狐艹你老母/ 2022年01月23日 07:49/ 0 赞/ 315 阅读
相关 Elasticsearch个人心得笔记(五) Elasticsearch集群 -------------------- 目录 港控/mmm°/ 2022年01月21日 08:13/ 0 赞/ 325 阅读
相关 Elasticsearch个人心得笔记(四) ELASTICSEARCH的mapping设置 -------------------- 目录 r囧r小猫/ 2022年01月21日 06:15/ 0 赞/ 420 阅读
相关 Elasticsearch个人心得笔记(三) Elasticsearch个人心得笔记(三) -------------------- 目录 爱被打了一巴掌/ 2022年01月21日 06:01/ 0 赞/ 323 阅读
相关 Elasticsearch个人心得笔记(二) Elasticsearch命令大全 -------------------- 目录 ﹏ヽ暗。殇╰゛Y/ 2022年01月21日 05:41/ 0 赞/ 487 阅读
相关 Flume个人心得笔记 一、概述 1. Flume是Apache提供的开源的、分布式的、可靠的日志收集系统 2. 能够有效的收集、聚合、传输大量的日志数据 3. Flume有2个版本:Fl 布满荆棘的人生/ 2021年12月16日 12:25/ 0 赞/ 446 阅读
还没有评论,来说两句吧...