跳到主要内容
版本: 最新版本-3.5

管理 BE 黑名单

本文介绍如何管理 BE 黑名单。

自 v3.3.0 起,StarRocks 支持 BE 黑名单功能,您可以使用该功能禁止在查询执行中使用某些 BE 节点,从而避免因与 BE 节点连接失败而导致的频繁查询失败或其他意外行为。

默认情况下,StarRocks 可以自动管理 BE 黑名单,将失去连接的 BE 节点添加到黑名单中,并在重新建立连接时将其从黑名单中删除。但是,如果 BE 节点是手动加入黑名单的,StarRocks 不会将其从黑名单中移除。

注意
  • 只有具有 SYSTEM 级别 BLACKLIST 权限的用户才能使用此功能。
  • 每个 FE 节点都保留自己的 BE 黑名单,不会与其他 FE 节点共享。

将 BE 添加到黑名单

您可以使用 ADD BACKEND BLACKLIST 手动将 BE 节点添加到 BE 黑名单。在此语句中,您必须指定要加入黑名单的 BE 节点的 ID。您可以通过执行 SHOW BACKENDS 来获取 BE ID。

示例

-- Obtain BE ID.
SHOW BACKENDS\G
*************************** 1. row ***************************
BackendId: 10001
IP: xxx.xx.xx.xxx
...
-- Add BE to the blacklist.
ADD BACKEND BLACKLIST 10001;

从黑名单中删除 BE

您可以使用 DELETE BACKEND BLACKLIST 手动从 BE 黑名单中删除 BE 节点。在此语句中,您还必须指定 BE 节点的 ID。

示例

DELETE BACKEND BLACKLIST 10001;

查看 BE 黑名单

您可以使用 SHOW BACKEND BLACKLIST 查看 BE 黑名单中的 BE 节点。

示例

SHOW BACKEND BLACKLIST;
+-----------+------------------+---------------------+------------------------------+--------------------+
| BackendId | AddBlackListType | LostConnectionTime | LostConnectionNumberInPeriod | CheckTimePeriod(s) |
+-----------+------------------+---------------------+------------------------------+--------------------+
| 10001 | MANUAL | 2024-04-28 11:52:09 | 0 | 5 |
+-----------+------------------+---------------------+------------------------------+--------------------+

返回以下字段

  • AddBlackListType:BE 节点添加到黑名单的方式。MANUAL 表示用户手动加入黑名单。AUTO 表示 StarRocks 自动加入黑名单。
  • LostConnectionTime:
    • 对于 MANUAL 类型,它表示 BE 节点手动添加到黑名单的时间。
    • 对于 AUTO 类型,它表示上次成功建立连接的时间。
  • LostConnectionNumberInPeriod:在 CheckTimePeriod(s) 内检测到的断开连接次数,这是 StarRocks 检查黑名单中 BE 节点的连接状态的间隔。
  • CheckTimePeriod(s):StarRocks 检查黑名单 BE 节点连接状态的间隔。其值被评估为您为 FE 配置项 black_host_history_sec 指定的值。单位:秒。

配置 BE 黑名单的自动管理

每次 BE 节点与 FE 节点失去连接,或查询因 BE 节点超时而失败时,FE 节点都会将 BE 节点添加到其 BE 黑名单中。 FE 节点将通过计算 BE 节点在一定时间内的连接失败次数来不断评估黑名单中 BE 节点的连接性。 仅当黑名单 BE 节点的连接失败次数低于预先指定的阈值时,StarRocks 才会将其从黑名单中删除。

您可以使用以下 FE 配置配置 BE 黑名单的自动管理

  • black_host_history_sec:用于保留 BE 黑名单中 BE 节点的历史连接失败的时间段。
  • black_host_connect_failures_within_time:黑名单 BE 节点允许的连接失败阈值。

如果 BE 节点被自动添加到 BE 黑名单,StarRocks 将评估其连接性并判断是否可以将其从 BE 黑名单中删除。 在 black_host_history_sec 内,仅当黑名单 BE 节点的连接失败次数少于 black_host_connect_failures_within_time 中设置的阈值时,才能将其从 BE 黑名单中删除。