本文介绍使用Kafka时可能遇到的问题及解决方法。
- 如何清理Kafka组件输出日志
- 如何清理Kafka-Manager服务输出日志
- 是否可以停止Kafka-Manager服务
- 报错“ERROR: Wile executing topic command : Replication factor: 1 larger than available brokers: 0.”
- 报错“ERROR: Wile executing topic command : Replication factor: 1 larger than available brokers: 0.”
- 报错“java.net.BindException: Address already in use (Bind failed)”
- Kafka数据日志目录Log Directory磁盘写满
- 报错“Too many open files”
如何清理Kafka组件输出日志
当组件服务输出日志过大,占用存储空间过多时,您可以进入Kafka服务输出日志的存储目录$LOG_DIR_ROOT
(默认存储实际目录为/mnt/disk1/log
),进入后根据需要删除kafka、cruise-control、kafka-schema-registry、kafka-rest-proxy等kafka组件日志目录下的日志文件。
如何清理Kafka-Manager服务输出日志
当组件服务输出日志过大,占用存储空间过多时,您可以进入Kafka-Manager服务输出日志的存储目录$LOG_DIR_ROOT/kafka-manager
(默认存储实际目录为/mnt/disk1/log/kafka-manager
),进入后根据需要删除相关日志文件。
是否可以停止Kafka-Manager服务
Kafka-Manager只是Kafka集群的管理软件,Kafka对外提供读写服务不依赖Kafka-Manager服务。如果您没有集成其他Kafka管理平台,建议您保留Kafka-Manager服务。如果您确认不需要Kafka-Manager服务,您可以直接在EMR管控页面停止该服务。
报错“ERROR: Wile executing topic command : Replication factor: 1 larger than available brokers: 0.”
- Kafka服务异常,集群Broker退出进程。
- Kafka服务的ZooKeeper地址错误。
- 请结合日志排查问题。
- 请您使用集群配置管理中Kafka组件的ZooKeeper连接地址。
报错“java.net.BindException: Address already in use (Bind failed)”
JMX_PORT=10101 kafka-topics.sh --bootstrap-server core-1-1:9092 --list
报错“current leader's lastest offset xxxx is less than replica's lastest offset xxxxxx”
如果确认数据都已经消费完成,或者数据可以丢失,您可以将Kafka Broker的配置项unclean.leader.election.enable
的值修改为true并重启Broker服务,待Broker服务重启完成后,再将unclean.leader.election.enable
修改为false。
Kafka数据日志目录Log Directory磁盘写满
当Kafka数据日志目录磁盘被写满,会导致相应的Log Directory异常Offline,您可以参见EMR Kafka磁盘写满运维,选择合适的方法进行处理。
报错“Too many open files”
问题分析:分区过多或者网络连接过多。
解决方法:通过修改/etc/security/limits.conf
系统配置文件的方式,修改ulimit open files
的限制,将该配置文件末尾的“* soft nofile”和 “* hard nofile”的值改成需要的大小并重启问题节点服务。