上一篇 《1 初识elasticsearch 介绍篇》简单的扯了下 elasticsearch 是什么东东、能干啥、应用场景及特点。
本章讲下 elasticsearch 结合 kibana 在windows 安装和使用(注:练习和讲解使用,因为已经能满足elasticsearch 讲解和练习使用,没必要折腾,节省时间,当然后面博主会单独讲解linux 下安装使用及调优)
进入正题
elasticsearch 、kibana 安装
下载elasticsearch、kibana 安装包,解压,先运行elasticsearch 下bin 的 elasticsearch.bat,再运行kibana
下bin 的 kibana.bat,即可完成安装
在浏览器中输入http://localhost:5601/app/kibana,点击Dev Tools 就可以进入elasticsearch 可视化 操作界面(命令控制台) 了,如下图
elasticsearch 基础分布式架构
-
elasticsearch 对复杂分布式机制有很好的透明隐藏特性,比如:
- 分片机制
- cluster discovery 集群发现机制
- shard rebalance 分片自动负载均衡
- shard 副本、路由机制、集群扩容、shard 重分配
-
elasticsearch 扩容策略
6台服务器,每台1T,要求增长到8T,这时的扩容方案
- 垂直扩容
另外购置两台node(2T),然后替换掉 node3 和 node6 ,8T = 4 * 1T + 2 * 2T
- 垂直扩容
水平扩容
另外购置两台node(1T),然后加入现有集群中,8T = 8 * 1T
两种方案比较,垂直扩容成本太大,水平扩容为优。
-
master 节点
- 管理elasticsearch集群的元数据,如 索引的创建、删除,节点的增加、删除 等元数据的维护
- master 节点是由集群选举产生的,master 节点不会承载所有的请求,所有不会导致单点瓶颈
-
节点平等的分布式架构
- 节点对等,每个节点都能接收所有的请求
- 相同的算法,自动请求路由
- 响应收集
节点平等也就验证了master 不会导致单点瓶颈的问题
elasticsearch 核心概念
- Near Realtime (NRT) 近实时
- 写入数据 到 搜索 的小延迟 s 级(秒级)
- 基于es 执行搜索、分析可以达到秒级
- Cluster 集群
包含多个node,每个node 通过配置归属那个集群(默认 elasticsearch) - Node 节点,默认会自动加入默认elasticsearch 名称的集群中,每个node 都有名称(默认随机分配)
- Index 索引
包含一堆有相似结构的文档数据(类似结构化数据库的库database) - Type 类型
每个索引中可以有一个或者多个type,type 是index 的逻辑数据分类(类似结构化数据库的表 table) - Document 文档,elasticsearch 中的最小数据单元(类似结构化数据库表中记录 row),Json 数据结构表示,存储到index 的type 下
- shard 分片,每个node 有一个多个shard,shard 可以横向扩展,它自动均衡到某个node上,可以将搜索、分析等操作分布到多个node 上去执行,提高吞吐量及性能,每个shard 都是一个lucene index,shard 有两种类型:
- primary shard 主分片
单台机器无法存储大量的数据,elasticsearch 可以将一个索引中的数据切分为多个shard,分布在N台服务器上
比如 3个node 中3 个 shard 、3个replica ,有index 3T 数据,这时每个node 上最多1T数据,所有的操作,都会在每个node 中并行分布式的执行,提高吞吐量和性能。 - replica shard 分片副本
任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个replica副本。replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。
- primary shard 主分片
primary shard 和 replica shard 自然而言的就可以做到了高可用,一个shard 宕机,数据不会丢失,可以持续提供服务
注:primary shard 和 replica shard 不允许在同一个 node 中,它会自动分配到不同的 node 上
以上就是本章内容,如有不对的地方,请多多指教,谢谢!
为了方便有需要的人,本系列全部软件都在 https://pan.baidu.com/s/1qYsJZfY
下章预告:主要讲解 elasticsearch shard&replica及容错机制
作者:逐暗者 (转载请注明出处)