Kafka的一些概念
Broker : 安装Kafka服务的那台集群就是一个broker(broker的id要全局唯一)
Producer:消息的生产者,负责将数据写入到broker中(push)
Consumer:消息的消费者,负责从kafka中读取数据(pull),老版本的消费者需要依赖zk,新版本的不需要
Topic:主题,相当于是数据的一个分类,不同topic存放不同的数据
replication:副本,数据保存多少份(保证数据不丢)
partition:分区,是一个物理分区,一个分区就是一个文件,一个topic可以有一到多个分区,每一个分区都有自己的副本。
Consumer Group:消费者组,一个topic可以有多个消费者同时消费,多个消费者如果在一个消费者组中,那么他们不能重复消费数据
Spark Streaming 2.2.0兼容kafka 0.8.2.1以上的版本,主要支持0.8和0.10这两个版本
安装
1.下载Kafka安装包
下载地址:http://kafka.apache.org/downloads
Kafka是用Scala编写的,所以在下载的时候注意Scala的版本。
2.上传安装包
将安装包上传到虚拟机中,我准备了三台虚拟机。
3.解压
tar -zxvf kafka_2.11-0.8.2.2.tgz -C /home/hadoop/app/
4.修改配置文件
cd kafka_2.11-0.8.2.2/config
sudo vim server.properties
找到下面四项内容进行修改即可:
broker.id=0
host.name=L3 ##这个是当前机器的主机名
log.dirs=/data/kafka ##这个很重要,存放Kafka消息的文件路径
zookeeper.connect=L1:2181,L2:2181,L3:2181 ##这个是zookeeper集群的安装机器的主机名
5.将配置好的kafka拷贝到其他机器上
scp -r kafka_2.11-0.8.2.2/ L4:$PWD
7.启动kafka(需要分别在每一台机器上启动)
加上-daemon这个参数是让Kafka这个进程在后台执行
/home/hadoop/app/kafka_2.11-0.8.2.2/bin/kafka-server-start.sh -daemon /home/hadoop/app/kafka_2.11-0.8.2.2/config/server.properties
Kafka的基本操作
1.查看topic信息
/home/hadoop/app/kafka_2.11-0.8.2.2/bin/kafka-topics.sh --list --zookeeper L1:2181,L2:2181,L3:2181
2.创建topic
/home/hadoop/app/kafka_2.11-0.8.2.2/bin/kafka-topics.sh --create --zookeeper L1:2181,L2:2181,L3:2181 --replication-factor 3 --partitions 3 --topic topicname
3.往Kafka的topic中写入数据(命令行的生成者)
/home/hadoop/app/kafka_2.11-0.8.2.2/bin/kafka-console-producer.sh --broker-list L3:9092,L4:9092,L5:9092 --topic topicname
4.启动消费者
--from-geginning这个参数可以让刚刚启动的broker读取之前的数据
/home/hadoop/app/kafka_2.11-0.8.2.2/bin/kafka-console-consumer.sh --zookeeper L1:2181,L2:2181,L3:2181 --topic topicname --from-beginning