es概念一句话简介和注意点
1、elasticsearch是什么?
一个实时分布式搜索和分析引擎,面向文档(document oriented),java语言开发,基于lucene,存储引擎
2、主节点(Master Node)职责?
负责集群中的操作(如索引创建删除), 跟踪哪些节点是集群的一部分,并决定哪些分片分配给数据节点
负责处理集群的状态并广播到其他节点, 并接收其他节点的确认响应
mark:主节点不接受客户端的请求;创建 / 删除索引的请求只能被Master节点处理
3、数据节点(Data Node)职责?
存储分片数据和执行数据相关操作( 比如增删改查, 搜索和聚合操作 )
mark:(1)由Master Node 决定如何把分片分发到数据节点上;(2) 数据节点对cpu, 内存, io要求较高,通过增加数据节点解决单点问题
4、客户端节点(Coordinating Node)协调者
负载均衡角色:接收Client 请求,分发(路由)到集群合适节点(例如创建索引的请求需要路由到Master节点 )
5、主分片 primary shard
一个分片是一个底层的工作单元,一个Lucene的实例,一个完整的搜索引擎,保存了全部数据中的一部分
mark:在索引创建时就已经确定主分片数,索引内任意一个文档都归属于一个主分片,因此主分片的数目决定索引能够保存的最大数据量;
markmark:主分片数量不可变
举例:
假如集群初始化时有5个primary shard,现加入一个document id=5,hash(5)=23,这时该document 将被加入 (shard=23%5=3) P3这个主分片上
如果给集群增加到6个primary shard ,当执行GET id=5这条数据的时候,es会计算该请求的路由信息找到存储他的 primary shard(shard=23%6=5),定位到P5分片上,而数据在P3上。
所以es集群不允许添加primary shard——但是可以扩展replicas shard
6、副本分片 replicas shard
一个副本分片是一个主分片的拷贝,作为硬件故障时保证数据不丢失的冗余备份,为读操作提供服务;副本分片数可以随时修改
7、索引 index
指向一个或者多个物理分片的逻辑命名空间
8、类型 type
7.x中逐渐去除type,理解为关系型数据库的table即可
9、文档 document
指定唯一ID的一条记录