文章目录
1. 实验环境说明
关于使用的大数据集群:
Hadoop+Spark+Zookeeper高可用集群搭建(一)
Hadoop+Spark+Zookeeper高可用集群搭建(二)
Hadoop+Spark+Zookeeper高可用集群搭建(三)
Hadoop+Spark+Zookeeper高可用集群搭建(四)
Hadoop+Spark+Zookeeper高可用集群搭建(五)
安装Kafka需要安装JDK和Zookeeper
其中,ZooKeeper是安装Kafka集群的必要组件,Kafka通过ZooKeeper来进行对元数据信息的管理,包括集群、broker、主题、分区等内容。
分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务分布式协调/通知、集群管理、Master选举、配置维护等功能。
2. 下载安装
下载地址:kafka官网
上传到slave001、slave002、slave003节点中
3. 配置部署
3.1 配置server.properties文件
cd /home/hadoop/software/kafka_2.11-2.4.1/config
vi server.properties
# broker的编号,集群中每个broker必须唯一
broker.id=1
# broker对外提供的服务入口地址
listeners=PLAINTEXT://192.168.5.142:9092
# 存放消息的日志文件的地址
log.dirs=/home/hadoop/software/kafka_2.11-2.4.1/tmp/kafka-logs
# Kafka所需的ZooKeeper集群地址
zookeeper.connect=slave001:2181,slave002:2181,slave003:2181
3.2 创建日志存储目录
mkdir -p /home/hadoop/software/kafka_2.11-2.4.1/tmp/kafka-logs
3.3 将文件发送至集群其他节点
scp -r kafka_2.11-2.4.1 hadoop@slave002:~/software/
scp -r kafka_2.11-2.4.1 hadoop@slave003:~/software/
3.3 修改集群中其余节点的配置
修改内容如下:
# slave002
broker.id=2
listeners=PLAINTEXT://192.168.5.143:9092
# slave003
broker.id=3
listeners=PLAINTEXT://192.168.5.144:9092
3.4 三个节点配置环境变量
sudo vi /etc/profile
#Kafka
export KAFKA_HOME=/home/hadoop/software/kafka_2.11-2.4.1
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
4. 启动测试
4.1 启动ZooKeeper
三个节点上启动:
./zkServer.sh start
./zkServer.sh status
4.2 启动Kafka
三个节点启动:
kafka-server-start.sh -daemon config/server.properties
4.3 测试
创建主题:
在slave001上创建主题topic-demo:
kafka-topics.sh --zookeeper slave001:2181,slave002:2181,slave003:2181 --create --topic topic-demo --replication-factor 3 --partitions 4
查看主题列表:
kafka-topics.sh --zookeeper slave001:2181,slave002:2181,slave003:2181 --list
展示主题更多的具体信息:
kafka-topics.sh --zookeeper slave001:2181,slave002:2181,slave003:2181 --describe --topic topic-demo
订阅主题:
三个集群节点上执行:
kafka-console-consumer.sh --bootstrap-server slave001:9092,slave002:9092,slave003:9092 --topic topic-demo
发送消息:
复制一个会话,或者重新打开一个shell终端
kafka-console-producer.sh --broker-list slave001:9092,slave002:9092,slave003:9092 --topic topic-demo
三个订阅者均收到消息
4.4 参数说明
参数 | 说明 |
---|---|
- -zookeeper | 指定了Kafka所连接的ZooKeeper服务地址 |
- -topic | 指定了所要创建主题的明程 |
- -replication-factor | 指定了副本因子 |
- -partitions | 指定了分区个数 |
- -create | 创建主题的动作指令 |
- -describe | 展示主题的更多具体信息 |
- -bootstrap-server | 指定了连接的Kafka集群地址 |
- -broker-list | 指定了连接的Kafka集群地址 |
5. 单节点启动多broker代理
如果没有分布式集群,也可以通过同一机器启动多个broker代理
具体部署请看:官方文档-quickstart
只需要修改server.properties文件:
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-logs-2
> bin/kafka-server-start.sh config/server-1.properties &
...
> bin/kafka-server-start.sh config/server-2.properties &
...