数客联盟

异常Kafka'修复'记

2019-08-15  本文已影响1人  WestC

近期由于测试Flink安全模式,找到一个安全的hadoop&kafka集群,测试过程中发现kafka集群各种异常(topic创建完没有leader,之前的topic无法消费,__consumer__offsets中部分partition没有leader),于是决心删除重装,经ambari删除添加发现如下深坑:

ambari在进行kafka清理时,不会将zk上kafka的znode清理
不会将各kafka节点上的数据目录清理

这大坑。。。

然而测试还是得继续。于是在集群上重新搭建一套新的kafka服务。然而原有的kafka集群已经创建的zknode和本地存储怎么办呢?会不会发生冲突呢?这里就用到的kafka自身的多集群能力了(一个zk集群,多套kafka的能力,当然这些kafka服务之间是没有关系的),其主要步骤如下

  1. 在zookeeper上创建znode节点 /myZkNode
  2. 配置并创建Kafka服务,
配置 默认值
zookeeper.connect localhost:2181 hostname:port/myZkNode
log.dirs /tmp/kafka-logs a new local dir

服务创建完之后的事情当然测试消息流程了,当用户a创建完topic之后,如果用户b使用,则需要对b用户进行授权,其授权主要包含几个方面:授权类型(授予什么样的权限),授权用户(授权给谁):授权消费组(以哪个消费组来消费),授权消费节点(来自哪个节点的消费)及其他细节。具体可参考kafka-acl.sh的help信息。

这里想指出的是如果为了方便想使用通配符 * 作为授权的对象的话,需要使用 '',如对所有的group均授权时,kafka-topics.sh  --group '*'
上一篇下一篇

猜你喜欢

热点阅读