暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Elasticsearch帮派?未曾设想的道路

Elastic之家 2022-04-24
616

你将花费8分钟读完本篇内容,读完之后你将会:

完成Elasticsearch集群搭建从新的角度熟悉节点角色作用

引言


女神

在么?

在在在,怎么了?

彦祖

女神

男朋友没有惹我生气,我是来学Elasticsearch的。

咋还学会抢答了呢

彦祖

女神

防火防盗学长😄今天我们做什么?

继续把集群搭起来呗

彦祖


网络拓扑

在搭建集群之前,我们需要规划好我们的集群分布,例如需要几台机器,每台机器安装哪些内容?

彦祖

女神

我数一下,好像需要三台机器,那我哪里有那么多电脑?

这几天装虚拟机真是白装了!我们可以克隆出来多台机器😎

彦祖

机器克隆

在克隆机器之前,我希望你可以对自己的工作环境做一下规划,例如像我一样,这样更方便我们在学习的过程中对机器进行管理。

创建克隆

移动到对应目录,并如法炮制创建其他的两个节点

启动虚拟机,登录进去根据网络拓扑修改IP

可以看到,我们上次配置的IP是172.16.192.81
,克隆过来的机器同之前的模板机器一致。

修改ip

     vi /etc/sysconfig/network-scripts/ifcfg-ens33

    按i进入编辑模式,wq保存

    重启网关

      systemctl restart network

      对另外两台机器按上述方式修改IP,在nuoshell建立三台机器的连接


      女神

      这样我就有了三台机器了吗?那是不是我一个人可以打十个了?

      只要你的机器能够hold住,别说十个了,你可以随便玩。

      彦祖

      女神

      耶耶耶~以后我装个windows的虚拟机玩玩!

      女神

      啊呀呀,学长学长,我的电脑怎么风扇呼呼的转,我感觉可以蒸鸡蛋了!

      对呀,虽然是虚拟机,但还是使用的是你机器的硬件资源,如果觉得电脑hold不住,可以装centos的时候选择最小化安装包

      彦祖

      女神

      那你不早说!!!!╭(╯^╰)╮


      集群配置

      DNode1节点下elasticsearch文件夹下的config/elasticsearch.yml

        # 集群名称是否是一个集群的重要指标
        cluster.name: cluster-1
        # es节点名称
        node.name: dnode-1
        # es节点中集群角色 data 数据节点 master 预备主节点 active_master 激活主节点(真实) voting_only 只参与投票不参与选举 ingest 管道数据处理节点
        node.roles: [data,master,ingest,remote_cluster_client]
        # 对外提供服务的地址和节点见通信的地址
        network.host: 172.16.192.83
        # 对外提供服务的端口
        http.port: 9200
        # 发现种子节点,小型集群配置全部的地址,端口9300是节点之间的通信端口
        discovery.seed_hosts: ["172.16.192.83:9300", "172.16.192.84:9300"]
        # 集群初始化的时候,用来选主的节点,必须是配置了master的节点,但不必是全部的节点
        cluster.initial_master_nodes: ["dnode-1", "dnode-2"]


        我省去了一些不必要的配置,目前我们构成最基础的集群只需要这些配置就好了,后面我们再对其他的配置进行介绍

        彦祖

        女神

        原来只需要这样几个配置就可以构成集群了吗?

        比如cluster.name 用来命名集群,也是各个节点接头的一个暗号,标志着咱们是一派的,就像是一个帮派名。就算你有取名困难症,elasticsearch也会给你一个默认的名字

        彦祖

        女神

        那我可不要默认的,我要一个我容易辨识的名字

        对的。这个习惯很好,这样不仅仅别人容易认识你,如果出错了,你自己也好定位是哪个集群出了问题。

        彦祖

        女神

        那node.name不用说肯定集群成员的名称咯?

        对的,你真聪明。那我考考你,每个节点都运行了之后,各个节点怎么让别人发现自己呢?

        彦祖

        女神

        emmm,要是我的话,我就在我的脚丫子上刻上记号,这样别人就知道我们是一派的

        不错不错,上一个这么做的还是天地会。对于elasticsearch来说,它要暴露出自己的网络地址,这样网络上的其他节点才能找到也就是network.host。这个配置别人能够找到我的小区。但是小区里面那么多住户,别人怎么知道是哪一间呢?

        彦祖

        女神

        贴上门牌号!

        对的。我们需要告诉别人我们的门牌号,那elasticsearch的默认门牌号是9300,不需要配置的。那节点又怎么去发现别人呢?总不能整个中国各个小区都去问问,是不是network.host吧?

        彦祖

        女神

        是哦,那应该怎么办呢?难不成做个地址登记表呀。

        你可真是小天才。不错就是用了一个登记表,只不过这个登记表没你想的那么大,就是配置的一个数组。discovery.seed_hosts就告诉我们可以去哪些地方找我们的组织。

        彦祖

        女神

        对哦,只需要找到一个组织,那么一传十,十传百,我们就可以都认识了。哈哈哈,elasticsearch真厉害。


        集群角色


        的确是这样。但是还存在一个问题。

        彦祖

        女神

        我已经找到了组织了呀,什么问题???

        组织集群是找到了,可是我们谁当家做主啊?我是啥角色,跑去组织告诉它我是五袋长老,他们会让我做主吗?

        彦祖

        女神

        是哦~那这样的话,这个elasticsearch帮派也是要划定不同的管理层了,我们就按丐帮的来吧!每个节点就是我们的帮众,我单方面宣布成立elasticsearch帮,主要负责帮人民查找,学长你是副帮主,我是帮主😄😄

        那可不行。之前就说过,elasticsearch分工明确。他们可是有着严格的角色划分。

        彦祖


        关于Elastic的分工介绍,你可以再次回顾这里。ELasticsearch分工介绍

        node.roles

        elastic通过node.roles的配置来进行角色节点

        女神

        对的,只要我们给每台机器都划分了角色,这样在组织之中就能够各司其职了。可是还是没有解决当家做主啊!

        你很敏锐。虽然我们给每个节点都划分了角色,就算这个节点是master也不代表它可以做主啊,但是如果每个节点都能做主的话,那么岂不是乱了。因此,我们就从众多节点里面选举一个真正的主人,而只有master的的节点,才有资格参与选拔赛。

        彦祖

        女神

        选拔赛?这里面是有比赛的吗?


        cluster.initial_master_nodes

        当然了,文无第一,武无第二。既然是当家做主,那肯定只能选择一个来做抉择。因此就有比赛啦。不过在选主之前,我们需要在众多帮众(节点)选出业绩做好的来参与比赛。

        彦祖

        女神

        在么?当然,不然每个帮众都来比赛,这不得累死呀。那我们如何选哪些帮众来参加呢?

        通过cluster.initial_master_nodes
        我们指定了一份预选名单,首先是节点的角色是master,之后这个列表里面的帮众,开始进行选主比赛,由其他节点投票,选出真正的帮主来负责统筹。

        女神

        嗯嗯,真好玩,那这个比赛的规则我们怎么制定呢?


        生成集群

        好了,在了解选主流程之前,我们先把DNode1的竞争对手DNode2配置好,让这个帮派先创立起来。

        彦祖

        先在DNode01启动es,再在DNode02启动es

          # 启动es,可别忘了切换普通用户哦
          ./elasticsearch

          _cluster/health

          如果出现下列错误,可以删除elastic的data文件,重新启动!但是,生产上禁止这种操作!!!!


          女神

          这样就形成了集群了吗?一个天下第一大帮就诞生了吗?虽然只有几个配置变成了集群,可是你还没有告诉我们,比赛规则是什么呢?

          比赛规则可有的聊了,下一篇,我们专门讲一下当前比较主流、精妙的选主规则怎么样?

          彦祖

          女神

          那就是下次一定咯,elasticsearch帮主!!对啦,网络拓扑图你可还没有完成哦?Kibana是什么?

          那是我们elasticsearch帮的外交部,关于它的介绍啊,我们下次一定。

          彦祖


          八佾Talk

          子夏曰:“日知其所亡,月无忘其所能,可谓好学也已矣。” 《论语》

          文章转载自Elastic之家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论