kafka命令_ELK|Kafka命令操作困扰

6475a0f4e2390af2361b9ada5a84a19f.gif

背景

kafka是一个分布式消息订阅系统,我司一直用它来做日志中转队列,配合ELK,一直表现很出色.当然,基本每次和它打交道的时候都是遇到队列堆积的情况,基本一年一次,去年是双十一,今年也是.之所以要记录一下,是因为同样的错误一年遇到一次,每次都要重新学习一遍,好记性不如赖笔头.  

kafka安装

首先说明一下背景,kafka是通过容器运行的.类似
docker run -dt \ --restart=always \ --name=kafka1 \ -h kafka1 \ -p 9092:9092 \ -p 9999:9999 \ -v /data:/kafka \ -v /opt/kafka/logs:/opt/kafka/logs \ -e KAFKA_ZOOKEEPER_CONNECT=xx.xx.xx.xx:2181\ -e KAFKA_BROKER_ID=1 \ -e KAFKA_HEAP_OPTS="-Xmx20G -Xms20G" \ -e JMX_PORT=9999 \ wurstmeister/kafka:1.0.0

问题一

JVM报错误无法分配内存:Cannot allocate memory
bash-4.3# kafka-topics.shJava HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000002c0000000, 21474836480, 0) failed; error='Cannot allocate memory' (errno=12)## There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocation (mmap) failed to map 21474836480 bytes for committing reserved memory.# An error report file with more information is saved as:# //hs_err_pid3290.log

f45041b7bb5db2747a5e2e43b4c8f570.png

这个问题的原因是因为设置了环境变量KAFKA_HEAP_OPTS="-Xmx20G -Xms20G".估计每次运行java命令都会按这个配置尝试分配20G内存吧,因为kafka主进程运行已经用去了20G,自然不可能再分配出来这么多了.

解决办法也很简单,直接去掉这个设置就好了
bash-4.3# unset KAFKA_HEAP_OPTS

JMX报错

一波刚平,一波又起.再次运行命令还是报错
bash-4.3# kafka-topics.shError: JMX connector server communication error: service:jmx:rmi://kafka1:9999

0c0a590fd0a5fe2866dcc772360c1b25.png

JMX是Java Management Extensions,它是一个Java平台的管理和监控接口。用来监控kafka运行情况的.基于前面的经验,这个问题大概率也是环境变量引起的.解决
unset JMX_PORT
然后就可以愉快的玩耍了考虑到近期会有大量ELK相关的文章出没,建了一个交流群,欢迎感兴趣的小伙伴加入交流

583dd27606f4512210007196f3397916.png

长按下图可以关注哟~

424d6d608f93b330a5e91b8d873b9b2c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值