问题

先前存储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)
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐