文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州
▲ 本章节目的
⚪ 了解Kafka的概念;
⚪ 掌握Kafka的配置与启动;
一、简介
1. 基本概念
Apache kafka 是一个分布式数据流平台。可以从如下几个层面来理解:
1. 我们可以向Kafka发布数据以及从Kafka订阅数据,即我们可以将Kafka看作是一个消息队列或者企业消息系统。所起的作用:缓冲(消峰限流),实现生产与消费的解耦。
2. Kafka可以存储数据,并提供容错机制。即数据丢失后可以进行恢复。
3. 当数据到达Kafka之后,可以马上的被消费处理。即Kafka的延迟很低。
我们可以人为Kafka具备以上三个方面的明显能力。根据Kafka的这些特点,Kafka的适用场景就是:搭建实时流平台的中间件。
2. kafka用途
1. 在系统或者应用程序之间构建实时数据传输管道。
2. 构建实时处理数据流的应有程序。
在实际工作中,对数据的处理方式有两种:
1. 离线批处理。
2. 实时流处理。
二、Kafka配置与启动
1. 基本概念
1.kafka是以集群部署方式运行在一台或多台服务器上。
2.kafka存储数据的类别成为topic。
3.在kafka中每一条记录包含一个key,一个value以及一个时间戳。
2. Kafka配置
1.通过wget从官网下载安装包 Apache Kafka。
2.上传到01虚拟机,解压。
3.进入Kafka安装目录下的config目录。
4.对server.properties进行配置。
配置示例:
broker.id=1
log.dirs=/home/software/kafka/kafka-logs
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
delete.topic.enable=true
advertised.host.name=192.168.234.21
advertised.port=9092
5.保存退出后,别忘了在安装目录下创建 kafka-logs目录
6.配置其他两台虚拟机,更改配置文件的broker.id编号(不重复即可)。可以通过远程拷贝,将01的Kafka发送给02,03,更改broker.id即可。
#切换到/home/software目录,执行如下指令:
scp -r kafka_2.11-1.0.0 hadoop02:/home/software/
scp -r kafka_2.11-1.0.0 hadoop03:/home/software/
7.先启动zookeeper集群
#进入zookeeper的bin目录,执行如下指令:
sh zkServer.sh start
#查看zookeeper角色状态
sh zkServer.sh status
8.启动kafka集群
#进入Kafka的bin目录,执行如下指令:
sh kafka-server-start.sh ../config/server.properties
#退出:ctrl+c
3. Kafka使用
1.创建自定义的topic
在bin目录下执行:
sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 1 --topic enbook
注:副本数量要小于等于节点数量
2.查看所有的topic
sh kafka-topics.sh --list --zookeeper hadoop01:2181
3.启动producer
sh kafka-console-producer.sh --broker-list hadoop01:9092 --topic enbook
4.启动consumer
[root@hadoop01 bin]# sh kafka-console-consumer.sh --zookeeper hadoop01:2181 --topic enbook --from-beginning
5.可以通过producer和consumer模拟消息的发送和接收
6.删除topic指令:
进入bin目录,执行如下指令:
sh kafka-topics.sh --delete --zookeeper hadoop01:2181 --topic enbook
可以通过配置 config目录下的 server.properties文件,加入如下的配置:
配置示例:
delete.topic.enable=true