Kafka入门

在安装Kafka之前,需要了解一些Kafka的概念

Broker : 安装Kafka服务的一台机器就是一个broker(broker的id要全局唯一)
Producer :消息生产者,负责将数据写入到broker中(push)
Consumer:消息消费者,负责从kafka中读取数据(pull),旧版本的消费者需要依赖zk,新版本的不需要
replication:副本(数据保存份数,保证数据不会丢失)
partition:分区,一个物理分区,一个分区就是一个文件,一个topic可以有多个分区,每一个分区都有自己的副本
Topic: 主题,相当于数据的一个分类,不同topic存放不同的数据
Consumer Group: 消费者组,一个topic可以有多个消费者同时消费,一个消费者组中的多个消费者不能重复消费数据

本文以Spark 2.2.1,Kafka 0.10.2.1为例。

根据官网,Spark Streaming 2.2.1 兼容Kafka 0.8.2.1以上版本,主要支持0.8和0.10这两个版本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前提: 已安装zookeeper集群,保证zk可以正常使用

1. 上传,解压Kafka安装包

在这里插入图片描述

2. 修改配置文件(/config/server.properties)

在这里插入图片描述

A.broker.id (全局唯一)

broker.id=0

B. 监听地址

listeners=PLAINTEXT://bigdata01:9092

在这里插入图片描述

B. 写入kafka的数据存储的位置(并非执行log日志)

log.dirs=/root/app/kafka_2.11-0.10.2.1/data

C.分区数量(可改可不改)

num.partitions=3

D. zk地址

zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181

在这里插入图片描述

E.保存退出,将配置完成的Kafka拷贝到其他机器

F.修改broker.id、listeners

bigdata02:broker.id=1
listeners=PLAINTEXT://bigdata02:9092
bigdata03:broker.id=2
listeners=PLAINTEXT://bigdata03:9092

3. 启动Kafka

/root/app/kafka_2.11-1.1.0/bin/kafka-server-start.sh -daemon /root/app/kafka_2.11-1.1.0/config/server.properties

在这里插入图片描述
再把其他两台也启动。

4. 往Kafka写入数据

写入数据,意味着需要开启一个生产者和一个消费者,这就需要首先开启一个topic,创建一个topic

4.1 查看topic信息(topic信息保存在zookeeper中)

/root/app/kafka_2.11-1.1.0/bin/kafka-topics.sh  --list --zookeeper bigdata01:2181,bigdata02:2181,bigdata03:2181

4.1 创建topic

/root/app/kafka_2.11-1.1.0/bin/kafka-topics.sh  --create --zookeeper bigdata01:2181,bigdata02:2181,bigdata03:2181 --replication-factor 3 --partitions 3 --topic helloTopic1

replication-factor 数据保存副本数量
partitions 分区数量
在这里插入图片描述

4.2 往topic中写入数据(启动一个生产者)

/root/app/kafka_2.11-1.1.0/bin/kafka-console-producer.sh --broker-list bigdata01:9092 --topic helloTopic1

在这里插入图片描述

4.3 启动一个消费者(可以消费到数据)

/root/app/kafka_2.11-1.1.0/bin/kafka-console-consumer.sh --zookeeper bigdata01:2181,bigdata02:2181,bigdata03:2181 --topic helloTopic1

在这里插入图片描述
关于第一个hello没有消费到,只需要在启动消费者的时候加一个–from-beginning就可以了
在这里插入图片描述

4.4 查看topic

/root/app/kafka_2.11-1.1.0/bin/kafka-topics.sh  --describe --zookeeper bigdata01:2181,bigdata02:2181,bigdata03:2181 --topic helloTopic1

在这里插入图片描述
PartitionCount:分区数量
ReplicationFactor:副本
Leader:活跃分区(kafka进程不分主从,但分区有leader和follower分区,leader分区负责读写,follower分区负责同步数据(也可以配置读数据)),这样设计可以将读写的压力均摊到多台机器
Isr:当前可用的副本节点(正在提供服务的副本)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值