前言
随着大数据技术普及率越来越高,门槛越来越低,大数据平台厂商也是层出不穷。国内几个规模比较大的厂商,基本都会基于HDP发行商,再次开发或者直接简单包装,就拿到市场上售卖。部分厂商还会涉及到ambari或者特定组件(Spark、Flink、Hive、Hbase等)的改进优化。而有些厂商无非就是直接集成组件的开源版本,实时跟踪社区的发展而已。所以,基于ambari提供的接口集成各种大数据组件,也算是一种最基本的基本功了。如果是集成kafka的话,会涉及到一个特殊的配置项,那就是broker.id。
正文
如官网所描述的,kafka broker.id是必须配置的。如图:
但是这里的”必须配置”说的是这个配置必须有,但不一定要用户自己配置(当然用户可以自己配置),也是可以由kafka broker动态生成配置的。如图
为什么扯到这些呢?
因为集成kafka到ambari时,如果用户自己管理配置broker.id,需要实现一些很恶心的检查机制,以确保公用同一个zookeeper集群的kafka集群中各个broker的broker.id必须唯一(这是官网要求,否则broker会启动失败)。比如:可能每启动一个broker,都需要到zookeeper中/brokers/ids节点check一下当前使用的broker.id是否已经使用,这会很恶心。可能有人会说,可以一次性提前分配好:比如以IP区分,可是集群内IP可能会改变的;那就用mac区分,这个每个机器都是唯一的。可是broker.id是int类型,而mac是6字节,做不到一一对应的。
结论
老老实实用broker自己动态配置的broker.id吧。
领取专属 10元无门槛券
私享最新 技术干货