kafka迁移数据目录
问题
先前存储kafka日志的磁盘空间太小,zabbix警报不断,于是加了磁盘,将日志存到新磁盘上。
解决方案
依次在每台机器上操作,保证有机器能响应producer和consumer的操作。
加磁盘需要重启服务器。
1. 拷贝日志
服务器启动后,将以前的日志拷贝到新目录
cp /data/kafka-logs /home/data/kafka-logs
2. 修改配置文件
这里以默认配置文件为例config/server.properties
vim server.properties
#修改log存放位置
log.dirs=/home/data/kafka-logs
3. 启动服务
启动zookeeper(因为zk和broker在同一节点,所以要先启动zk,否则跳过该步骤)
sudo /usr/install/zookeeper/bin/zkServer.sh start
启动broker
nohup sudo /usr/install/kafka/bin/kafka-server-start.sh /usr/install/kafka/config/server.properties &
Tip
在整个集群还没完整迁移完的情况下,操作会报出大量如下错误,此时并不影响producer和consumer进行操作(存活的其余partition会响应相应请求)
WARN Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn)
java.net.ConnectException: 拒绝连接
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1146)