白居易IT—Elasticsearch的入门概念(一)

来源:互联网 发布:chipseq数据分析 编辑:程序博客网 时间:2024/05/17 01:04
  1. ES是一个接近实时的搜索平台
  2. 集群:
    1. 集群时一个或多个节点(服务器)的集合,它们一起保存整个数据,并在所有节点上提供联合索引和搜索功能;
    2. 默认集群名字为“elasticsearch”,节点通过集群名字来加入集群;
    3. 一个节点的集群也是正确的;
  3. 节点:
    1. 节点是集群一部分的单个服务器,存储数据并参与集群的索引和搜索功能;
  4. 索引:
    1. 相当于一个数据库,索引可存储大量数据(记录),这些数据可能超出单个节点的硬件限制。例如占用1TB磁盘空间的十亿份文档的单个索引可能不适合单个节点的磁盘,或者可能太慢而无法单独提供搜索请求
    2. 为了解决以上问题,Elasticsearch提供了将索引细分为多个分片的能力。当创建索引时,您可以简单地定义所需要的分片数量。每个分片本身都是一个功能齐全且独立的“索引”(就是将一个大索引分成很多小索引,所有小索引的存储的数据加起来等于大索引的数据,这里的小索引也就是分片),可以在集群中的任何节点上进行托管。
    3. 分成分片的原因:
      1. 允许水平分割您要搜索的内容量
      2. 可以并行操作(你烧水的同时可以扫地,如果是一个大索引的话,你只能等水烧开了,你再去扫地),从而提高性能(吞吐量:单位时间内cpu从存储设备读取->处理->存储信息的量)
      3. 至于哪些文档放在哪些分片,还有那个从各个分片上搜索到的结果如何聚合成一个结果返回的,这些都是elasticsearch管理的,对用户来说是看不见的;
      4. 为防止某个分片或者节点失效,Elasticsearch允许您将索引分片的一个或多个副本分片;
      5. 副本分片的原因:
        1. 在分片或节点失败的情况下提供高可用性,由于节点可能失效,所以副本分片和原分片不能放在一个节点上。
        2. 扩展你的吞吐量,因为搜索可以在所有副本上并行执行(假如在搜索A分片中的某个内容的时候,也会并行的搜索A分片的副本分片,共同完成A分片的搜索)
总之,每个索引可以分成多个分片,每个分片可以有多个副本分片或者没有副本分片,在你创建索引时,可以自定义每个索引的分片和副本的数量。创建索引之后,你可以随时更改副本的数量,但不能随意更改分片的数量。默认情况下,Elasticsearch中的每个索引都分配了5个主分片和一个副本,意味着至少有两个集群(源分片和副本分片不能在一个节点上),每个索引有10个分片。