本地环境搭建集群
本地环境搭建集群
前言
我们搭建一个有4个节点的单播集群。
- 系统环境:windows 10
- elasticsearch版本: elasticsearch6.5.4
- kibana版本:kibana6.5.4
配置各节点
需要说明的是,查看集群还可以用到elasticsearch head
插件,但是该插件依赖nodejs
,我嫌麻烦就没装。采用kibana一样。而且,由于elasticsearch比较大,所以,根据系统环境适当的减少节点也是合理的,没必要非要搞4个。最好放到固态盘下演示效果最好!
为了便于管理,我在C盘的根目录下创建一个es_cluster
目录,然后将elasticsearch压缩包和kibana压缩包解压到该目录内,并且重命名为如下结构:
补充一点,这里仅是搭建集群,并没有安装ik分词插件,如果要安装的话,直接安装在各es目录内的plugins
目录下即可。具体安装方法参见ik分词器的安装
配置单播发现
现在,我们为这个集群增加一些单播配置,打开各节点内的\config\elasticsearch.yml
文件。每个节点的配置如下(原配置文件都被注释了,可以理解为空,我写好各节点的配置,直接粘贴进去,没有动注释的,出现问题了好恢复):
- elasticsearch1节点,,集群名称是my_es1,集群端口是9300;节点名称是node1,监听本地9200端口,可以有权限成为主节点和读写磁盘(不写就是默认的)。
cluster.name: my_es1
node.name: node1
network.host: 127.0.0.1
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304"]
- elasticsearch2节点,集群名称是my_es1,集群端口是9302;节点名称是node2,监听本地9202端口,可以有权限成为主节点和读写磁盘。
cluster.name: my_es1
node.name: node2
network.host: 127.0.0.1
http.port: 9202
transport.tcp.port: 9302
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304"]
- elasticsearch3节点,集群名称是my_es1,集群端口是9303;节点名称是node3,监听本地9202端口,可以有权限成为主节点和读写磁盘。
cluster.name: my_es1
node.name: node3
network.host: 127.0.0.1
http.port: 9203
transport.tcp.port: 9303
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304"]
- elasticsearch4节点,集群名称是my_es1,集群端口是9304;节点名称是node4,监听本地9204端口,仅能读写磁盘而不能被选举为主节点。
cluster.name: my_es1
node.name: node4
network.host: 127.0.0.1
http.port: 9204
transport.tcp.port: 9304
node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9302", "127.0.0.1:9303", "127.0.0.1:9304"]
由上例的配置可以看到,各节点有一个共同的名字my_es1,但由于是本地环境,所以各节点的名字不能一致,我们分别启动它们,它们通过单播列表相互介绍,发现彼此,然后组成一个my_es1集群。谁是老大则是要看谁先启动了!
kibana测试
我们打开kibana,通过左侧菜单栏的Monitoring
来监控各集群的健康状况。
由于我先启动的是node2节点,所以node2就是主节点。
问题
- 出现kibana连不上的问题,可能原因是我是测试,频繁改一些配置导致的,解决办法,就是删除各节点下的data目录。放心它会再创建回来的。
- 防止脑裂配置上,es实例就无法启动,查看日志发现是
[2019-03-21T09:33:30,142][INFO ][o.e.x.m.j.p.NativeController] [XkfReKb] Native controller process has stopped - no new native processes can be started
,我怀疑是由于是本地环境引起,等下次在不同的主机上测试再来解决这个问题。
discovery.zen.fd.ping_interval: 1
discovery.zen.fd.ping_timeout: 20
discovery.zen.fd.ping_retries: 3
discouery.zen.minimum_master_nodes: 3
欢迎斧正,that's all