Elasticsearch--分布式特性
2020-02-06 本文已影响0人
小波同学
分布式特性
- es支持集群模式,是一个分布式系统,其好处主要有两个:
- 增大系统容量,如内存、磁盘、使得es集群可以支持PB级的数据
- 提高系统可用性,即使部分节点停止服务,整个集群依然可以正常服务
- es集群由多个es实例组成
- 不同集群通过集群名字来区分,可通过cluster.name进行修改,默认为elasticsearch
- 每个es实例本质上是一个JVM进程,且有自己的名字,通过node.name进行修改
cerebro的安装与运行
cerebro地址:https://github.com/lmenezes/cerebro
下载解压
https://github.com/lmenezes/cerebro/releases
wget https://github.com/lmenezes/cerebro/releases/download/v0.8.1/cerebro-0.8.1.tgz
tar xzf cerebro-0.8.1.tgz
启动
cerebro-0.8.1/bin/cerebro
[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
- 指定端口
bin/cerebro -Dhttp.port=8080
- 配置服务器
非必须:如果经常使用的话,可以先在conf/application.conf中配置好ElasticSearch服务器地址
hosts = [
{
host = "http://localhost:9200"
name = "Some Cluster"
},
# Example of host with authentication
#{
# host = "http://some-authenticated-host:9200"
# name = "Secured Cluster"
# auth = {
# username = "username"
# password = "secret-password"
# }
#}
]
使用方法
访问cerebro服务
通过上述设定的9000端口访问cerebro服务,页面显示信息如下图所示
只需要输入ElasticSearch的URL并点击connect按钮,成功连接即可显示如下图所示信息。需要注意的是由于cerebro运行在容器中,直接输入localhost:9200即使通过浏览器能够访问也可能无法连接,需要保证的是在cerebro的容器中能够访问到的URL,比如这里使用的本机的IP
点击Connect按钮即可连接成功,连接后可以显示集群信息:
-
概要信息
-
节点信息
-
Rest接口
-
其他功能
启动一个节点
Cluster State
Master Node
创建一个索引
Coordinating Node
Data Node
新增一个节点
提高系统可用性
- 服务可用性
- 2个节点的情况下,允许其中1个节点停止服务
- 数据可用性
- 引入副本(Replication)解决
- 每个节点上都有完备的数据
副本
如下图所示,node2上是test_index的副本
增大系统容量
分片
Cluster Health
故障转移
文档分布式存储
脑裂问题
Shard详解
参考:
https://www.jianshu.com/p/433d821f9667