kafka是基于zookeeper的一个实时消息中转中心,采用了producer -> kafka cluster -> consumer的框架
配合flume进行使用效果很好
为什么要用kafka
为什么用kafka而不是HDFS
个人总结了四点:
1、实时性:hdfs的实时性没有kafka高。
2、消费量的记录:hdfs不会记录你这个块文件消费到了哪里,而基于zookeeper的kafka会记录你消费的点。
3、并发消费:hdfs不支持并发消费,而kafka支持并发消费,即多个consumer.
4、弹性且有序:当数据量会很大,而且处理完之后就可以删除时,频繁的读写会对hdfs中NameNode造成很大的压力。而kafka的消费点是记录在zookeeper的,并且kafka的每条数据都是有“坐标”的,所以消费的时候只要这个“坐标”向后移动就行了,而且删除的时候只要把这个“坐标”之前的数据删掉即可。
搭建
安装SCALA
选用.12的,kafka暂时不支持.13的scala
https://www.jianshu.com/p/569480699017
安装KAFKA 和简单调试
https://blog.csdn.net/u010889616/article/details/80641922
注意:
server.property
里面的ID记得每个节点要写不一样,否则会启动失败
KAFKA和FLUME搭建
https://blog.csdn.net/scgh_fx/article/details/80587994
同时有一个实例
另:关于kafka创建topics的时候partition replication-factor两个参数的含义,可以看这里:
https://blog.csdn.net/russle/article/details/83421904
该文同时介绍了如何修改这个factor,不错不错