zoukankan      html  css  js  c++  java
  • Elasticsearch--集群&时光之门和恢复控制

    节点发现

    启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点。如果找到主节点,该节点加入一个已经组成了的集群;如果没有找到,该节点成为主节点(如果配置允许)。形成集群和寻找节点的过程称为发现
    发现模块有两个目的:

    • 选出一个主节点
    • 发现集群中的新节点

    发现的类型

    默认没有安装额外插件的情况下,Elasticsearch允许使用Zen发现,它提供了多播和单播发现。

    选择多播还是单播,首先需要确定网络是够处理多播消息。如果可以,使用多播更简单。如果不能处理多播,使用单播发现。单播发现更加安全:不想任何节点误加入你的集群中。

    主节点

    主节点检查所有其他节点,看它们是否有响应(其他节点也ping主节点)。主节点还将接受加入集群的新节点。如果主节点断开连接了,其余节点将从中选择一个新的主节点,这些过程都是基于配置自动完成的。

    配置主节点和数据节点

    默认情况下,Elasticsearch允许节点同时成为主节点和数据节点。

    主节点的选取的配置

    如果一个多节点的集群因为某些原因有几个节点断开了,这样剩下的两簇节点会形成两个具有相同名字的集群。这称为脑裂

    为了防止脑裂发生,Elasticsearch提供了discovery.zen.minimum_master_nodes属性。定义了形成一个集群,有主节点资格并互相连接的节点的最小数目。

    设置集群名

    一般情况下建议设置集群的名字。

    配置多播

    多播是zen发现的默认方法。

    • discovery.zen.ping.multicast.group:用于多播请求的群组地址,默认是224.2.2.4
    • discovery.zen.ping.multicast.port:多播通信的端口号,默认54328
    • discovery.zen.ping.multicast.ttl:多播被认为有效的时间,默认3s
    • discovery.zen.ping.multicast.address:Elasticseach应该绑定的地址。默认是null,意味着elasticsearch将尝试绑定到系统可见的所有网络接口。

    要禁用多播,在elasticsearch.yml文件中添加discovery.zen.ping.multicast.enabled属性为false。

    配置单播

    因为单播的工作方式,需要指定至少一个接收单播消息的主机。为此,在elasticsearch.yml文件中添加discovery.zen.ping.unicast.hosts属性。该属性指定了所有形成集群的主机。指定的主机中保证最少有一个工作。

    也可以定义一个Elasticsearch可以使用的端口范围:

    主机之间用逗号隔开,并指定预计用于单播消息的端口。

    节点的ping设置

    主节点和集群中的其他节点会互相ping。可以设置的属性如下:

    这些值可以根据实际网络状况进行调节。

    时光之门与恢复模块

    除了索引和索引里面的数据,Elasticsearch还需要保存类型映射和索引级别的设置等元数据。此信息需要被持久化到别处,以便集群恢复事读取。

    时光之门可以当做一个集群数据和元数据的安全避风港。每次启动集群,所有所需数据从时光之门读取,更改集群,使用时光之门模块保存。

    时光之门

    时光之门有多个类型,不过目前除了local类型,其他已经废弃,需要在elasticsearch.yml文件中添加gateway.type属性,值为local。local类型的写操作不是异步的。所以每当写操作完成,都可以确保数据已经被写入gateway(即它被索引或存储在事务日志中)。

    恢复控制

    除了选择时光之门类型外,Elasticsearch允许配置何时启动最初的恢复过程。恢复是初始化所有分片和副本的过程,从事务日志中读取所有数据,并应用到分片上。

    假设有一个10个Elasticsearch节点组成的集群。应该通知Elasticsearch节点数目,设置gataway.expected_nodes属性为10。当集群中节点数据等于10时,Elasticsearch将立刻开始恢复过程。

    也可以在8个节点之后开始恢复,设置gateway.recover_after_nodes属性为8。可以将它设置为任何我们想要的值,但应该把它设置为一个值以确保集群状态快照的最新版本可用,一般在大多数节点可用时开始恢复。

    我们希望gateway在集群形成后的10分钟以后开始恢复,设置gateway.recover_after_time属性为10m。在gateway.recover_after_nodes属性指定数目的节点形成集群后,需要等待多长时间再开始恢复。

    额外的gateway恢复选项

  • 相关阅读:
    hadoopfs: 未找到命令...
    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    centos 7 安装音乐播放器(亲测可用)(转载)
    Linux 脚本编写基础
    Zip加密
    Qt嵌入cef3关闭窗口时崩溃的问题
    C++11多线程基础
    C++11多线程(std::atomic)
    C++11多线程(thread_local)
    VS 新建RelWithDebInfo模式
  • 原文地址:https://www.cnblogs.com/51zone/p/9859884.html
Copyright © 2011-2022 走看看