本文共 1659 字,大约阅读时间需要 5 分钟。
es本身支持集群模式,是一个分布式系统,主要有两个好处:
es集群由多个es实例构成:
,这里我使用的是0.7.2版本的包。
wget https://github.com/lmenezes/cerebro/releases/download/v0.7.2/cerebro-0.7.2.tgz
cerebro is an open source(MIT License) elasticsearch web admin tool built using Scala, Play Framework, AngularJS and Bootstrap.
cerebo是kopf在es5上的替代者
解压后进入bin目录下,有一个可执行文件cerebro,直接运行即可:
它默认监听在9000端口,可以通过浏览器直接访问:
进入之后首先设置访问es的地址,这里先设置es的9200端口:
http://10.10.99.229:9200
这样就进入了cerebro的界面:
从这个界面可以看出几群的名称、节点个数、索引个数、shards个数、文档个数、总文档大小等信息。
在下边就是node的信息,包括物理配置信息等。还可以快速过滤node和索引
运行下面的命令来启动一个节点:
bin/elasticsearch -Ecluster.name=my_cluster -Enode.name=node1 -Epath.data=my_cluster_node1 -Ehttp.port=5200 -d
通过浏览器访问5200端口:
连接到cerebro:
已经连接到集群了。
es集群的数据称为集群状态(cluster state),主要有以下的信息:
cluster state的相关信息只能被master节点修改,这个节点一个集群只能有一个。cluster state存储在每一个节点之上,master维护最新版本并同步给其他节点。
master节点通过集群内所有节点选举产生,可被选举(候选)节点称为master-eligible节点。想要让节点可被选举称为master节点只需要配置node.master:true
即可。在cerebro中,节点名称旁边的星星表示这个节点为master。
在cerebro中创建索引:
这里只设置了索引的名称为test_index,其他默认,点击create后就创建了索引。
在这个创建索引的动作后,master会更新cluster state的信息。cluster state也有版本,例如这里cluster state就从版本0更新到了版本1
coordinating节点是所有节点的默认角色,不能取消。coordinating节点负责将请求路由到正确的节点处理,比如创建索引的请求就路由到master节点处理。
存储数据的节点称为data节点,默认节点都是data类型,配置如下:
node.data:true
增加一个node2节点以解决目前集群单点问题:
bin/elasticsearch -Ecluster.name=my_cluster -Enode.name=node2 -Epath.data=my_cluster_node2 -Ehttp.port=5300 -d
在cerebro的主界面上将会看到新加入集群的结点。