1.zookeeper的配置:
dataDir=/tmp/zookeeper
clientPort=2181
2.kafka的配置:
broker.id=0
listeners=PLAINTEXT://spark1:9092
log.dirs=/opt/softwares/kafka_2.11-2.4.1/log
zookeeper.connect=spark1:2181/kafka
3.kafka的使用:
启动kafka
bin/kafka-server-start.sh config/server.properties
创建Topic
bin/kafka-topics.sh --zookeeper node1:2181/kafka --create --topic topic-demo --replication-factor 1 --partitions 1
生产数据
bin/kafka-console-producer.sh --broker-list spark1:9092 --topic demo1
消费数
bin/kafka-console-consumer.sh --bootstrap-server spark1:9092 --topic demo1
4.kafka的简介:
4.1.kafka的体系结构:
4.2主题与分区:
每一条消息被发送到topic之前,会根据分区规则选择存储到哪个具体的分区。
4.3分区多副本机制
4.4分区中偏移量的说明
ISR:是AR的子集,所有与leader副本保持一定程度同步的副本(包括leader副本)
OSR:与leader副本同步滞后过多的副本(不包括 leader副本)
4.5leader副本的推举
leader副本负责维护和跟踪ISR集合中所有follower副本的滞后状态
当follower落后太多或失效时,leader则把它从ISR中剔除,放入OSR
如果OSR中有follower副本“追上”时,leader则会把它从OSR中移到ISR
AR=ISR+OSR
默认情况下,当leader副本故障时,只有在ISR中的副本才有资格被选举为新的leader
4.6.ISR与HW和LEO的关系 :
HW:HW是High Watermark的缩写,俗称高水位,它标识了一个特定的消息偏移量(offset),消费者只能拉取这个offset之前的消息
LEO:是Log End Offset的缩写,它标识当前日志文件中下一条待写入消息的 offset