13.Elasticsearch集群

13.1 Elasticsearch集群简介

  • Elasticsearch用于构建高可用和可扩展的系统。
    • 扩展的方式可以是购买更好的服务器(纵向扩展(vertical scale or scaling up))或者购买更多的服务器(横向扩展(horizontal scale orscaling out))。
  • Elasticsearch虽然能从更强大的硬件中获得更好的性能,但是纵向扩展有它的局限性。
    • 真正的扩展多数是横向的,它通过增加节点来均摊负载和增加可靠性。

13.2 集群的节点(node)

  • 一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的 cluster.name ,它们协同工作,分享数据和负载。
    • 当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。
  • 集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或删除索引、增加或移除节点等。
  • 主节点不参与文档级别的变更或搜索。
  • 做为用户,能够与集群中的任何节点通信,包括主节点。

13.3 Elasticsearch数据存储

  • Elasticsearch是一个分布式的文档(document)存储引擎。它可以实时存储并检索复杂数据结构——序列化的JSON文档。
  • 在Elasticsearch中,每一个字段的数据都是默认被索引的。
    • 每个字段专门有一个反向索引用于快速检索。
    • 与其它数据库不同,它可以在同一个查询中利用所有的这些反向索引,以惊人的速度返回结果

13.4 Elasticsearch的分布式

  • Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:
    • 将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
    • 将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
    • 冗余每一个分片,防止硬件故障造成的数据丢失。
    • 将集群中任意一个节点上的请求路由到相应数据所在的节点。
    • 无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。

13.5 路由文档到分片

  • 当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢?事实上,它根据一个简单的算法决定:
    • shard = hash(routing) % number_of_primary_shards

13.6 索引(index)与分片(shards)

  • 索引是一个用来指向一个或多个分片(shards)的“逻辑命名空间(logical namespace)”。
  • 一个分片(shard)是一个最小级别“工作单元(worker unit)”,它保存了索引中所有数据的一部分。
  • 分片是Elasticsearch在集群中分发数据的关键。把分片想象成数据的容器。文档存储在分片中,然后分片分配到你集群中的节点上。
  • 分片可以是主分片(primary shard)或者是复制分片(replica shard)。

13.7 复制分片(replica shard)

  • 在集群中创建一个叫做 blogs 的索引
    • 默认情况下,一个索引被分配5个主分片,以下示例分配3个主分片和一个复制分片(每个主分片都有一个复制分片):
PUT /blogs
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}}

13.8 启动第二个节点

  • 如果我们启动了第二个节点,这个集群看起来就像下图。所有的主分片和复制分片都将被分配:

13.9 节点扩展与负载均衡

  • 当集群新增节点时,集群会重新组织自己:

13.10 修改复制分片数

  • 复制分片的数量可以在运行中的集群中动态地变更,把复制分片的数量从原来的1 增加到 2 ,代码如下:
PUT /blogs/_settings
{"number_of_replicas" : 2
}

13.11 节点故障

  • 我们杀掉的节点Node1,集群的响应如下

13.12 新建、索引和删除文档

  • 在主分片和复制分片上成功新建、索引或删除一个文档必要的顺序步骤:

13.13 倒排索引

  • 例如,我们有两个文档,每个文档 content 字段包含:
      1. The quick brown fox jumped over the lazy dog
      1. Quick brown foxes leap over lazy dogs in summer
  • 把所有的唯一词放入列表并排序,结果是这个样子的:

13.14 倒排索引的特性

  • 倒排索引的注意事项:
    • “Quick” 和 “quick” 被认为是不同的单词;
    • “fox” 和 “foxes” 很相似,就像 “dog” 和 “dogs” ——它们都是同根词。
    • “jumped” 和 “leap” 不是同根词,但意思相似——它们是同义词。

大数据视频推荐:
CSDN
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值