更新时间:2022-12-14 GMT+08:00

设置Znode的quota信息

操作场景

该任务指导用户在运维场景或业务场景中对安全集群中的ZooKeeper节点Znode设置quota配额信息,用来限制Znode及其子节点的数量以及Znode及其子节点的字节空间。

设置Znode的quota有以下两种方式:

  • 在Manager上开启自动设置配额开关并设置相关配置项,让ZooKeeper服务自动设置znode的配额,请参考18
  • 在Manager上关闭自动设置配额开关,并在客户端运行命令手动设置znode的配额,请参考13

对系统的影响

如果设置的数量配额或容量配额值过小,小于服务正常运行所需要的目录数量或容量,服务会出现无法正常运行等问题,请谨慎设置配额值的大小。

前提条件

已安装客户端,例如安装目录为“/opt/client”。

操作步骤

使用自动设置配额的功能

  1. 请参考修改集群服务配置参数,进入ZooKeeper“全部配置”页面,选择“配额”分类页,将自动设置配额功能的开关“quotas.auto.check.enable”设置为“true”,单击“保存”。
  2. 是否需要设置在ZooKeeper上顶层目录的配额(例如:Yarn服务)。

    • 是,执行3
    • 否,执行5

  3. 请参考修改集群服务配置参数,进入Yarn“全部配置”页面,并搜索“zk.quota”配置项。
  4. 合理设置以下配额值,单击“保存”,ZooKeeper服务会周期性的自动设置Yarn服务在ZooKeeper上顶层目录的配额。

    1. 配置项“zk.quota.number”表示服务在ZooKeeper上目录的数量配额。
    2. 配置项“zk.quota.bytes”表示服务在ZooKeeper上目录的容量配额。

    如果设置的数量配额或容量配额值,小于当前目录实际的数量配额或容量配额,设置可以保存成功,但界面会上报设置无效的告警,提示用户重新设置配额值。

    如果设置的数量配额或容量配额值过小,小于服务正常运行所需要的目录数量或容量,服务会出现无法正常运行等问题,请谨慎设置配额值的大小。

  5. 是否需要设置除各服务目录外其他自定义顶层目录配额。

    • 是,执行6
    • 否,操作结束。

  6. 进入ZooKeeper“全部配置”页面,并选择“配额”分类页。
  7. 在配置项customized.quota的"名称"的输入框中,输入ZooKeeper上的顶层目录(例如“/abc”)。
  8. 在对应“值”的输入框中,依次输入数量配额值和容量配额值(也可以只设置数量配额),以逗号分隔。如果需要设置多个顶层目录的配额,单击“+”新增。修改完配置后,单击“保存”,ZooKeeper服务会周期性的自动设置顶层目录的配额,操作结束。

    输入的数量配额值,不能大于配置项max.znode.count指定的数值;输入的容量配额值,不能大于配置项max.data.size指定的数值。

    如果ZooKeeper上的顶层目录,不是某个服务的顶层目录,也没有在配置项customized.quota项中自定义配额,ZooKeeper服务会将其数量配额大小设置为配置项defaultQuota的值。

通过客户端下发命令配置

  1. 进入ZooKeeper“全部配置”页面,并选择“配额”分类页,将自动设置配额功能的开关quotas.auto.check.enable设置为“false”,单击“保存”。
  2. 参考使用ZooKeeper客户端,启动ZooKeeper客户端。

    安全模式下启动ZooKeeper客户端需要进行用户认证,认证时需使用zookeeper用户(ZooKeeper的系统管理员)进行认证,执行kinit zookeeper

  3. 执行setquota /znode -n number -b byte命令。

    • znode为需要设置quota的节点。
    • number为该节点及子节点允许的最大数量。
    • byte为该节点及子节点被允许的最大字节空间。