美文网首页ELK
13.Elasticsearch集群

13.Elasticsearch集群

作者: 大勇任卷舒 | 来源:发表于2022-03-29 17:10 被阅读0次

    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
    ELK入门精讲
    AIOps智能运维实战
    ELK7 stack开发运维
    大数据语音推荐:
    ELK7 stack开发运维
    企业级大数据技术应用
    大数据机器学习案例之推荐系统
    自然语言处理
    大数据基础
    人工智能:深度学习入门到精通

    相关文章

      网友评论

        本文标题:13.Elasticsearch集群

        本文链接:https://www.haomeiwen.com/subject/apbzdrtx.html