Hadoop学习日记(十六)
2019.07.08、07.09
主题:Kafka
学习过程主要参考段海涛大数据p61
注:因项目需要,故提前学习视频中Kafka相关内容,Hadoop HA机制以及Hive、HBase、Storm后续再补充。
1. Kafka要点
1. Kafka是一个分布式的消息缓存系统;
2. Kafka集群中的服务器都叫做broker;
3. Kafka有两类客户端,一类叫作producer(消息生产者),一类叫作consumer(消息消费者),客户端和broker之间采用TCP协议连接;
4. Kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区(partition),以分担消息读写的负载;
5. 每一个分区都可以由多个副本,以防止数据的丢失;
6. 某一给分区中的数据如果需要更新,都必须通过该分区所有副本中的leader来更新;
7. 消费者可以分组,例如两个消费者组A和B,共同消费一个topic:order_info,A和B所消费的消息不会重复,比如order_info中有100个消息,每一个消息有一个id,编号从0-99,那么如果A组消费0-49,B组就消费50-99;
8. 消费者在消费某个具体topic中的消息时,可以指定其实偏移量。
2.Kafka单节点测试
Kafka主目录的bin目录下提供了一些脚本可供单节点测试kafka(Kafka单节点测试),但是在输入“bin
/zookeeper-server-start
.sh config
/zookeeper
.properties
”时,总是提示"Classpath is empty. Please build the project first e.g. by running ......"。刚开始受