Cluster Level Shard Allocation(集

作者: 菜花_Q | 来源:发表于2018-03-27 16:06 被阅读239次

    官网地址:Cluster Level Shard Allocation | Elasticsearch Reference [5.5] | Elastic

    分片分配是将分片分配给节点的过程。这可以发生在初始恢复、复制分配、再平衡或 当节点添加或删除时。

    分片分配设置

    以下内容动态设置可以用于控制分片分配和恢复:

    cluster.routing.allocation.enable

    启用或禁用特定类型分片的分配:

    all-(默认)允许为所有类型的分片进行分片分配(shard allocation)

    primaries-允许仅为主分片进行分片分配。

    new_primaries-允许仅为新索引的分配分配。

    none-任何索引的任何类型都不允许分片分配。

    当重新启动节点,此设置不会影响本地主分片的恢复。重新启动节点,该节点具有未分配的主节点副本。 碎片会立即恢复该主分片,假设其分配id匹配 群集状态中的一个活动分配IDs。

    cluster.routing.allocation.node_concurrent_incoming_recoveries

    在节点上允许发生多少并发传入碎片恢复。传入恢复是在节点上目标分片(最可能是副本除非分片被重新定位)被分配的恢复。默认情况下2。

    cluster.routing.allocation.node_concurrent_outgoing_recoveries

    在节点上允许发生多少并发传出碎片恢复。传出恢复是在节点上源分片(最可能是副本除非分片被重新定位)被分配的恢复。默认情况下2。

    cluster.routing.allocation.node_concurrent_recoveries

    设置cluster.routing.allocation.node_concurrent_incoming_recoveries和cluster.routing.allocation.node_concurrent_outgoing_recoveries两种方法的快捷方式。

    cluster.routing.allocation.node_initial_primaries_recoveries

    虽然副本的恢复发生在网络上,在节点重新启动后恢复未分配的主分片使用来自本地磁盘的数据。这些应该是快速的,这样就可以在同一节点上并行地进行更多的初始主恢复。默认情况下4.

    cluster.routing.allocation.same_shard.host

    允许执行检查,以防止在单个主机上分配同一碎片的多个实例。基于主机名和主机地址。默认值为false,这意味着默认情况下不执行检查。此设置仅适用于在同一台机器上启动多个节点。

    分片再平衡设置

    下面的动态设置可用于控制跨集群的shards的再平衡。

    cluster.routing.rebalance.enable

    为特定种类的shards启用或禁用再平衡:

    all-(默认)允许对所有类型的碎片进行碎片再平衡。

    primaries-只允许主分片进行分片再平衡。

    replicas-只允许副本分片进行分片再平衡。

    none-不允许任何索引任何类型的分片进行分片再平衡。

    cluster.routing.allocation.allow_rebalance

    指定何时允许shards再平衡:

    always-总是允许再平衡。

    indices_primaries_active-只有在集群中所有的主分片都分配时才会再平衡。

    indices_all_active-(默认)只有在集群中所有分片(主和副本)被分配时才会再平衡。

    分片平衡启发式(Shard Balancing Heuristics)

    下面的设置一起使用,用于确定每个碎片的位置。当不允许再平衡操作可以使任何节点的权重更接近任何其他节点的权重时,集群是平衡的。

    cluster.routing.allocation.balance.shard

    定义在节点上分配的碎片总数的权重因子(float)。默认为0.45f。提高这一特性会使集群中所有节点的碎片数量趋于相等。

    cluster.routing.allocation.balance.index

    定义在特定节点上分配的每个索引的碎片数量的权重因子(float)。默认为0.55度。提高这一特性会使集群中所有节点上的每个索引的碎片数量趋于相等。

    cluster.routing.allocation.balance.threshold

    应该执行的操作的最小优化值(非负浮动)。默认为1.0度。提高这一点将导致集群在优化碎片平衡方面不那么积极。

    不管平衡算法的结果如何,由于强制意识或分配过滤,再平衡可能不被允许。

    ==============================================================================

    可以在kibana的dev tools设置这些值,或者直接使用curl来设置这些值,举例说明

    1、查询es集群中的设置

    get _cluster/settings?pretty

    查询cluster的设置

    2、设置集群参数

    PUT /_cluster/settings

    {

      "transient":{

        "cluster.routing.allocation.enable":"all"

      }

    }


    设置cluster的参数

    相关文章

      网友评论

      本文标题:Cluster Level Shard Allocation(集

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