你将花费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 用来命名集群,也是各个节点接头的一个暗号,标志着咱们是一派的,就像是一个帮派名。就算你有取名困难症,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
子夏曰:“日知其所亡,月无忘其所能,可谓好学也已矣。” 《论语》