| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

Elasticsearch总体介绍

Elasticsearch就是为高可用和高可扩展而生,可以通过添加更多的服务器来水平扩展。

空集群

  • 主节点(Master Node):集群中的一个结点会被选为主节点,它 负责整个集群的变化 ,比如创建索引或者删除索引,以及对集群中结点的增加和删除。主节点不需要参与到文档级别的变化或者搜索中,这就意味着主节点不会因为流量的增大而成为瓶颈。任何结点都可以成为主节点。

  • 我只启动了一个节点,所以自然这个结点就成为了主节点,因此现在所构建的集群就是一个单节点集群。作为用户,我可以与集群中的任意一个节点通信,包括主节点。 每个节点都知道文档在那个节点上,并且它可以转发请求到相应的结点。我们访问的结点负责收集各个节点返回的数据,最后一起返回给客户端 。这一切都由Elasticsearch处理。

集群健康 (Cluster Health)

我们在Elasticsearch集群中可以监控很多信息,其中最重要的一项就是集群的健康,集群健康有三种状态:green,yello,red。

curl -XGET localhost:9200/_cluster/health?pretty

如果一个集群中没有任何索引,返回一下信息:

{   "cluster_name": "elasticsearch",   "status": "green",   "timed_out": false,   "number_of_nodes": 1,   "number_of_data_nodes": 1,   "active_primary_shards": 0,   "active_shards": 0,   "relocating_shards": 0,   "initializing_shards": 0,   "unassigned_shards": 0  }

当我在集群是上建立了索引后,返回如下信息:

{    "cluster_name" : "elasticsearch",    "status" : "yellow",    "timed_out" : false,    "number_of_nodes" : 1,    "number_of_data_nodes" : 1,    "active_primary_shards" : 5,    "active_shards" : 5,    "relocating_shards" : 0,    "initializing_shards" : 0,    "unassigned_shards" : 5  }
  • green:所有的主要分片(Primary Shard)和复制分片(Replica Shard)都可用

  • yellow:所有的主分片都可用,但是并不是所有的复制分片都可用

  • red:不是所有的主要分片都可用

下面介绍分片,包括主分片和复制分片。

分片 (Shards)

  • 为了将数据添加到ES,我们需要索引(index),在逻辑上,index是存储数据的地方,而在实际上,index是一个用来 指向一个或者多个分片的的逻辑命名空间

  • 一个分片是一个最小级别的“工作单元”,它保存了索引中所有数据的一部分,一个分片是一个Lucene实例,并且 它本身就是一个完整的搜索引擎我们的文档存储在分片中,并且在分片中被索引。我们的应用程序不会直接和分片通信,取而代之的是直接和索引通信

  • 分片是Elasticsearch在集群中分发数据的关键。把分片想象成数据的容器, 文档存储在分片中,然后分片分配到你集群中的节点上 。当集群扩容或者缩小,Elasticsearch会自动在节点间迁移分片,使得集群可以保持平衡。

  • 分片可以分为 主分片 (primary shard)和 复制分片 (replica shard), 索引中的每个文档属于一个单独的主分片 ,所以主分片的数量决定了索引中最多能够存储多少数据。

  • 复制分片是主分片的一个副本,用来防止硬件故障导致的数据丢失,同时可以提供读请求,比如搜索或者从别的shards取回文档。

  • 当索引创建的时候,主分片的数量就确定了,但是复制分片可以随时调整。

参考https://github.com/looly/elasticsearch-definitive-guide-cn

原文 http://segmentfault.com/a/1190000003499675

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1440685458732.html
ElasticSearch 搜索引擎