Kafka集群搭建
-
集群规划
faith-openSUSE
faith-Kylin
faith-Mint
zk
zk1
√
zk2
√
zk3
√
Kafka
broker1
√
broker2
√
broker3
√
-
Kafka版本与Spark兼容性
如下图,要选择kafka_2.10-0.8.2.2,该版本与spark-1.6兼容,kafka_2.10-0.9.0.1与spark-1.6不兼容。
-
修改配置
-
broker.id(server.properties)
-
每一个broker的id必须唯一。
-
port端口,Producer向Kafka发送消息的端口号(server.properties)
默认值9092,这个端口是Producer向Kafka发送消息的端口号,Consumer消费消息时候并不是直接连接Kafka,而是连接ZK的2181,由ZK获取Kafka的地址以及offset。
-
消息存储路径log.dirs(server.properties)
这个配置并不是Kaka运行日志的路径,而是kafka中消息的存储路径。为什么消息的路径使用log.dirs命名呢?这是因为Kafka的消息机制采用的是日志方式,也就是append追加方式,这不同于常规的消息系统,常规的消息系统当Consumer消费完消息后,消息就在消息系统中删除掉了,而kafka中,当Consumer消费完消息,消息并不在Kafka中删除,而新的消息是在老消息的后面append追加上的,kafka的这种方式和日志非常像,所以这里的名字起名log.dirs。
可以使用逗号分割多个目录。
-
leader的均衡机制
-
设置ZK地址
-
启动Kafka
Kafka属于各个Node完全对等的架构,这种架构的特点就是:由于没有Master-Slaves之分,所以各个Node地位完全平等,谁也管不了谁,谁也无法登录另一个Node启动另一个Node上的进程,所以启动的时候无法像Master-Slaves那样只由Master执行启动命令,Master再通过SSH启动Slaves。各个Node完全对等的架构做不到。只能是各个Node都需要执行启动命令才能完整启动集群。
-
一些命令
-
创建一个Topic
-
-
查看Topic列表
-
查看某个Topic详细信息
Isr:检查节点
-
Producer生产消息
-
启动消费者Consumer
-
ZK中存储的元数据信息
显示所有Topic列表
dingzheng的partitions的序号分别是2,1,0。
第二个Partition的信息
所有Consumer的列表
查看某一个Consumer的详细信息