更新时间:2024-10-08 GMT+08:00

更改Kafka Broker的存储目录

操作场景

本章节内容适用于MRS 3.x及后续版本。

增加Broker的存储目录时,MRS集群管理员需要在FusionInsight Manager中修改Broker的存储目录,以保证Kafka正常工作,新创建的主题分区将在分区最少的目录中生成。适用于以下场景:

由于Kafka不感知磁盘容量,建议各Broker实例配置的磁盘个数和容量保持一致。

  • 更改Broker角色的存储目录,所有Broker实例的存储目录将同步修改。
  • 更改Broker单个实例的存储目录,只对单个实例生效,其他节点Broker实例存储目录不变。

对系统的影响

  • 更改Broker角色的存储目录需要重新启动服务,服务重启时无法访问。
  • 更改Broker单个实例的存储目录需要重新启动实例,该节点Broker实例重启时无法提供服务。
  • 服务参数配置如果使用旧的存储目录,需要更新为新目录。

前提条件

  • 在各个数据节点准备并安装好新磁盘,并格式化磁盘。
  • 已安装好Kafka客户端。
  • 更改Broker单个实例的存储目录时,保持活动的Broker实例数必须大于创建主题时指定的备份数。

操作步骤

更改Kafka角色的存储目录

  1. root用户登录到安装Kafka服务的各个数据节点中,执行如下操作。

    1. 创建目标目录。

      例如目标目录为“${BIGDATA_DATA_HOME}/kafka/data2”:

      执行mkdir ${BIGDATA_DATA_HOME}/kafka/data2

    2. 挂载目录到新磁盘。例如挂载“${BIGDATA_DATA_HOME}/kafka/data2”到新磁盘。
    3. 修改新目录的权限。

      例如新目录路径为“${BIGDATA_DATA_HOME}/kafka/data2”:

      执行chmod 700 ${BIGDATA_DATA_HOME}/kafka/data2 -Rchown omm:wheel ${BIGDATA_DATA_HOME}/kafka/data2 -R

  2. MRS 3.x及后续版本,登录FusionInsight Manager,然后选择“集群 > 服务 > Kafka > 配置”。
  3. 添加新目录到“log.dirs”的默认值后面。

    在搜索框中输入“log.dirs”进行搜索,将新目录添加到配置项“log.dirs”的默认值后面,多个目录使用逗号分隔。例如“

    ${BIGDATA_DATA_HOME}/kafka/data1/kafka-logs,${BIGDATA_DATA_HOME}/kafka/data2/kafka-logs”。

  4. 单击“保存”,并单击“确定”。界面提示“操作成功”,单击“完成”。
  5. 选择“集群 > 服务 > Kafka ,右上角选择“更多 > 重启服务”,重启Kafka服务。

更改Kafka单个实例的存储目录

  1. root用户登录到Broker节点,执行如下操作。

    1. 创建目标目录。

      例如目标目录为“${BIGDATA_DATA_HOME}/kafka/data2”,执行以下命令:

      mkdir ${BIGDATA_DATA_HOME}/kafka/data2

    2. 挂载目录到新磁盘。例如挂载“${BIGDATA_DATA_HOME}/kafka/data2”到新磁盘。
    3. 修改新目录的权限。

      例如新目录路径为“${BIGDATA_DATA_HOME}/kafka/data2”,执行以下命令:

      chmod 700 ${BIGDATA_DATA_HOME}/kafka/data2 -Rchown omm:wheel ${BIGDATA_DATA_HOME}/kafka/data2 -R

  2. MRS 3.x及后续版本,登录FusionInsight Manager,然后选择“集群 > 服务 > Kafka > 实例”。
  3. 单击指定的Broker实例并切换到“实例配置”。

    在搜索框中输入“log.dirs”进行搜索,将新目录添加到配置项“log.dirs”的默认值后面,多个目录使用逗号分隔。例如“${BIGDATA_DATA_HOME}/kafka/data1/kafka-logs,${BIGDATA_DATA_HOME}/kafka/data2/kafka-logs”。

  4. 单击“保存”,并单击“确定”,界面提示“操作成功”,单击“完成”。
  5. 在Broker实例页面选择“更多 > 重启实例”,重启Broker实例。