更改Broker的存储目录
操作场景
增加Broker的存储目录时,系统管理员需要在FusionInsight Manager中修改Broker的存储目录,以保证Kafka正常工作,新创建的主题分区将在分区最少的目录中生成。适用于以下场景:
由于Kafka不感知磁盘容量,建议各Broker实例配置的磁盘个数和容量保持一致。
- 更改Broker角色的存储目录,所有Broker实例的存储目录将同步修改。
- 更改Broker单个实例的存储目录,只对单个实例生效,其他节点Broker实例存储目录不变。
对系统的影响
- 更改Broker角色的存储目录需要重新启动服务,服务重启时无法访问。
- 更改Broker单个实例的存储目录需要重新启动实例,该节点Broker实例重启时无法提供服务。
- 服务参数配置如果使用旧的存储目录,需要更新为新目录。
前提条件
- 在各个数据节点准备并安装好新磁盘,并格式化磁盘。
- 已安装好Kafka客户端。
- 更改Broker单个实例的存储目录时,保持活动的Broker实例数必须大于创建主题时指定的备份数。
操作步骤
更改Kafka角色的存储目录
- 以root用户登录到安装Kafka服务的各个数据节点中,执行如下操作。
- 创建目标目录。
例如目标目录为“${BIGDATA_DATA_HOME}/kafka/data2”:
执行mkdir ${BIGDATA_DATA_HOME}/kafka/data2。
- 挂载目录到新磁盘。例如挂载“${BIGDATA_DATA_HOME}/kafka/data2”到新磁盘。
- 修改新目录的权限。
例如新目录路径为“${BIGDATA_DATA_HOME}/kafka/data2”:
执行chmod 700 ${BIGDATA_DATA_HOME}/kafka/data2 -R和chown omm:wheel ${BIGDATA_DATA_HOME}/kafka/data2 -R。
- 创建目标目录。
- 登录FusionInsight Manager,然后选择“集群 > 服务 > Kafka > 配置”。
- 添加新目录到“log.dirs”的默认值后面。
在搜索框中输入“log.dirs”进行搜索,将新目录添加到配置项“log.dirs”的默认值后面,多个目录使用逗号分隔。例如“
${BIGDATA_DATA_HOME}/kafka/data1/kafka-logs,${BIGDATA_DATA_HOME}/kafka/data2/kafka-logs”。
- 单击“保存”,并单击“确定”。界面提示“操作成功”,单击“完成”。
- 选择“集群 > 服务 > Kafka ,右上角选择“更多 > 重启服务”,重启Kafka服务。
更改Kafka单个实例的存储目录
- 以root用户登录到Broker节点,执行如下操作。
- 创建目标目录。
例如目标目录为“${BIGDATA_DATA_HOME}/kafka/data2”:
执行mkdir ${BIGDATA_DATA_HOME}/kafka/data2。
- 挂载目录到新磁盘。例如挂载“${BIGDATA_DATA_HOME}/kafka/data2”到新磁盘。
- 修改新目录的权限。
例如新目录路径为“${BIGDATA_DATA_HOME}/kafka/data2”:
执行chmod 700 ${BIGDATA_DATA_HOME}/kafka/data2 -R和chown omm:wheel ${BIGDATA_DATA_HOME}/kafka/data2 -R。
- 创建目标目录。
- 登录FusionInsight Manager,然后选择“集群 > 服务 > Kafka > 实例”。
- 单击指定的Broker实例并切换到“实例配置”。
在搜索框中输入“log.dirs”进行搜索,将新目录添加到配置项“log.dirs”的默认值后面,多个目录使用逗号分隔。例如“${BIGDATA_DATA_HOME}/kafka/data1/kafka-logs,${BIGDATA_DATA_HOME}/kafka/data2/kafka-logs”。
- 单击“保存”,并单击“确定”,界面提示“操作成功”,单击“完成”。
- 在Broker实例页面选择“更多 > 重启实例”,重启Broker实例。