使用场景
在一个kafka的cluster集群中,如果一个节点的数据损坏了,例如本地磁盘坏了,导致单个kafka无法使用,或者无法启动了;首先我们想到的是尽快修复和恢复本地数据,然后重新加入cluster。
但是如果存在无法修复的情况,那么怎么办呢,基于是一个集群环境,kafka能够自动从集群中其他节点恢复数据。
步骤
- 停止损坏的节点上的kafka服务
- 备用原来的kafka的本地数据。(虽然是坏数据,但也值得备份一下)
- 清空本地数据
rm -rf ${log.dirs}/*
在${log.dirs}目录下面通常有这些文件:
cleaner-offset-checkpoint
log-start-offset-checkpoint
meta.properties
recovery-point-offset-checkpoint
replication-offset-checkpoint
<topic>-<partition>
<topic>-<partition>
...
<topic>-<partition>
- 重启kafka服务
- 等待数据同步完成