Elasticsearch8.1 -- 4. 配置Elasticsearch (集群分片分配配置)

集群级分片分配和路由设置

  • 集群级分片分配设置
    通过以下设置来控制分片分配和恢复。分片通过网络进行,恢复包括: 传出恢复传入恢复

    cluster.routing.allocation.enable(动态)
         为特定类型的分片启用或禁用分配。 all(默认)所有, primaries 仅主分片, new_primaries 仅新索引的主分片, none 不允许分片分配
    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_recoveriescluster.routing.allocation.node_concurrent_recoveries 的快捷方式, 建议使用这个。
    cluster.routing.allocation.node_initial_primaries_recoveries(动态)
         允许未分配的主节点初始恢复时最大的并发数, 默认为 4;
    cluster.routing.allocation.same_shard.host(动态)
         If true,禁止将一个分片的多个副本分配给同一主机上的不同节点,即具有相同网络地址的节点。默认为 false ,这意味着有时可能会将分片的副本分配给同一主机上的节点。

  • 分片再平衡设置
    当集群在每个节点上具有相同数量的分片时,集群是平衡的,而没有来自任何节点上的任何索引的分片集中。Elasticsearch 运行一个称为重新平衡的自动过程,该过程在集群中的节点之间移动分片以改善其平衡。 可以使用以下设置来控制整个集群的分片重新平衡:

    cluster.routing.rebalance.enable(动态)
         为特定类型的分片启用或禁用重新平衡。 all(默认) 所有primaries 仅主分片, replicas 仅副本none 都不允许
    cluster.routing.allocation.allow_rebalance(动态)
         指定何时允许分片重新平衡:always 任何时候, indices_primaries_active 当主分片都分配完成时indices_all_active 当所有分片(主分片和副本)都分配完成时
    cluster.routing.allocation.cluster_concurrent_rebalance(动态)
         允许控制集群范围内允许多少并发分片重新平衡。默认为2.

基于磁盘的分片分配

基于磁盘的分片分配器确保所有节点都有足够的磁盘空间,而不会执行不必要的分片移动。它根据称为 低水位线高水位线 的一对阈值分配分片。其主要目标是确保没有节点超过高水位线,或者至少任何此类超额只是暂时的。如果一个节点超过了高水位线,那么 Elasticsearch 将通过将它的一些分片移动到集群中的其他节点来解决这个问题。

分配器还尝试通过禁止将更多分片分配给超过低水位线的节点来使节点远离高水位线。重要的是,如果您的所有节点都超过了低水位线,则无法分配新的分片,并且 Elasticsearch 将无法在节点之间移动任何分片以将磁盘使用率保持在高水位线以下。您必须确保您的集群总共有足够的磁盘空间,并且始终有一些节点低于低水位线。
cluster.routing.allocation.disk.threshold_enabled(动态)
     默认为true。设置为false禁用磁盘分配决定器。
cluster.routing.allocation.disk.watermark.low(动态)
     控制磁盘使用的低水位线。默认为85%,这意味着 Elasticsearch 不会将分片分配给磁盘使用率超过 85% 的节点。此设置对新创建索引的主分片没有影响,但会阻止分配它们的副本。
cluster.routing.allocation.disk.watermark.high(动态)
     控制高水印。它默认为90%,这意味着 Elasticsearch 将尝试将分片从磁盘使用率高于 90% 的节点重新定位。此设置影响所有分片的分配,无论之前是否分配。
cluster.routing.allocation.disk.watermark.enable_for_single_data_node(静态)
     控制洪水阶段水印,默认为 95%。当磁盘超过阈值时, Elasticsearch会释放掉有 index.blocks.read_only_allow_delete 标记的只读索引(副本分片)。

PUT /my-index-000001/_settings
{
 "index.blocks.read_only_allow_delete": null
}

cluster.routing.allocation.disk.watermark.flood_stage.frozen(动态)
     控制专用冻结节点的洪水阶段水印,默认为 95%。
cluster.routing.allocation.disk.watermark.flood_stage.frozen.max_headroom(动态)
     控制专用冻结节点的洪水阶段水印的最大净空。cluster.routing.allocation.disk.watermark.flood_stage.frozen 未明确设置时默认为 20GB 。这限制了专用冻结节点上所需的可用空间量。
cluster.info.update.interval(动态)
     Elasticsearch 应该多久检查一次集群中每个节点的磁盘使用情况。默认为30s.

集群分片限制

基于集群中节点的数量,集群中的分片数量存在软限制。这是为了防止可能无意中破坏集群稳定性的操作。

如果创建新索引、恢复索引快照或打开关闭的索引等操作会导致集群中的分片数量超过此限制,则该操作将失败并显示指示分片限制的错误。

对于普通(非冻结)索引,集群分片限制默认为每个非冻结数据节点 1,000 个分片,对于冻结索引,每个冻结数据节点 3000 个分片。所有开放索引的主分片和副本分片都计入限制,包括未分配的分片。例如,具有 5 个主分片和 2 个副本的开放索引计为 15 个分片。封闭索引不影响分片计数。

可以使用以下设置动态调整集群分片限制:

  • cluster.max_shards_per_node(动态)
    限制集群的主分片和副本分片的总数。Elasticsearch 计算限制如下:cluster.max_shards_per_node * number of non-frozen data nodes
  • cluster.max_shards_per_node.frozen(动态)
    限制集群的主和副本冻结分片的总数。Elasticsearch 计算限制如下:cluster.max_shards_per_node * number of frozen data nodes

集群远程复制设置

  • 远程恢复设置
    以下设置可用于对 远程恢复 期间的数据进行速率限制:

    ccr.indices.recovery.max_bytes_per_sec(动态)
    限制每个节点上的总入站和出站远程恢复流量。默认为40mb. 如果您将此限制设置得太高,那么正在进行的远程恢复可能会消耗过多的带宽(或其他资源),这可能会破坏集群的稳定性。

    ccr.indices.recovery.max_concurrent_file_chunks(动态)
    控制每次恢复可以并行发送的文件块请求的数量。默认为5. 最大允许值为10。 由于会存在多个远程恢复并行运行的可能,因此增加此设置可能仅在单个分片的远程恢复未达到由 ccr.indices.recovery.max_bytes_per_sec 配置的总入站和出站远程恢复流量的情况下有所帮助。

    ccr.indices.recovery.chunk_size(动态)
    控制文件传输过程中追随者请求的块大小。默认为 1mb.

    ccr.indices.recovery.recovery_activity_timeout(动态)
    控制恢复活动的超时。此超时主要适用于领导者集群。领导者集群必须在内存中打开资源,以便在恢复过程中向跟随者提供数据。如果leader在这段时间内没有收到follower的recovery请求,就会关闭资源。默认为 60 秒。

    ccr.indices.recovery.internal_action_timeout(动态)
    控制远程恢复过程中单个网络请求的超时。单个操作超时可能会导致恢复失败。默认为 60 秒。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容