大数据实操篇 No.12-Kafka集群部署及使用

第1章 简介

Kafka作为一个高吞吐量的分布式发布订阅消息系统,在现今大数据生态中已经占有很重要的地位,在系统削峰、解耦等场景上也发挥了重要作用。其天生的分布式架构,可以灵活的进行扩展,可以非常好的支持大吞吐量的数据传输。因为其在大数据场景中的重要地位,并且后续文章案例中需要使用到Kafka,所以笔者这里单独介绍一章。

第2章 集群规划

Kafka笔者这里只安装2台

另外,由于Kafka需要使用Zookeeper,Zookeeper相关部署请参照笔者之前的文章:大数据实操篇 No.1-Zookeeper集群搭建

据说后续Kafka的版本会逐渐抛弃Zookeeper,持续关注!

Kafka120

Kafka121

Kafka

第3章 下载解压

直接到官网下载, 官网地址:http://kafka.apache.org

解压:

$ tar -zxvf kafka_2.12-2.5.0.tgz -C /opt/module/

第4章 修改配置

4.1 修改环境变量

修改/etc/profile 添加如下内容

#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka_2.12-2.5.0
export PATH=$PATH:$KAFKA_HOME/bin

source一下

$ source /etc/profile

4.2 创建数据目录

到kafka解压目录,创建数据目录,默认是logs文件夹,这里建议单独创建数据目录,与默认的logs文件夹的log文件分开。

$ mkdir data

4.3 修改配置文件

4.3.1 修改server.propertie

修改kafka配置文件,config目录下server.properties,修改内容如下:

#Kafka集群节点ID(int型,集群中唯一)
broker.id=0

#允许删除topic
delete.topic.enable=true

#数据+日志保存路径
log.dirs= /opt/module/kafka_2.12-2.5.0/logs

#分区数量
num.partitions=2

#数据存储时间(默认7天)
log.retention.hours=168
segment最大数据量(默认1G)
log.segment.bytes=1073742824

#zookeeper集群地址
zookeeper.connect=zookeeper110:2181, zookeeper111:2181, zookeeper112:2181

4.3.2 修改consumer.properties

修改kafka配置文件,config目录下consumer.properties,修改内容如下:

bootstrap.servers=kafka120:9092,kafka121:9092

注:旧版kafka(0.11之前),consumer还是建议连接zookeeper,在之后的版本已经建议甚至禁止连接zookeeper了,consumer直接连接kafka自己,offset等信息直接存在kafka本地。

第5章 启动/停止 Kafka

5.1 单点启动

$ bin/kafka-server-start.sh -daemon config/server.properties

注:-daemon表示在后台启动,不填写-daemon将在前台占用窗口。

Kafka默认只提供单点启动的脚本,群起需要自行编写脚本,下面提供一个群起脚本供参考。

5.2 群起脚本

在kafka120和kafka121上,配置环境变量到当前用户环境变量目录下

$ cat /etc/profile >> ~/.bashrc

先创建群起脚本文件  

$ touch kafka-all.sh
$ chmod 777 kafka-all.sh
$ vi kafka-all.sh

 填写如下内容:

#!/bin/bash
case $1 in
"start"){
        for i in kafka120 kafka121
        do
                ssh $i "source /etc/profile && export JMX_PORT=9988 && /opt/module/kafka_2.12-2.5.0/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.12-2.5.0/config/server.properties"
                echo "=============$i==========="
        done
};;
"stop"){
        for i in kafka120 kafka121
        do
                ssh $i "source /etc/profile && /opt/module/kafka_2.12-2.5.0/bin/kafka-server-stop.sh"
                echo "=============$i==========="
        done
};;
esac

5.3 启动kafka集群

注意,启动前请先启动zookeeper

$ bin/kafka-all.sh start

5.4 停止kafka集群

$ bin/kafka-all.sh stop

第6章 命令测试

6.1 启动控制台消费者

[zihao@kafka121 kafka_2.12-2.5.0]$ bin/kafka-console-consumer.sh --topic test --bootstrap-server kafka120:9092,kafka121:9092

6.2 启动控制台生产者

[zihao@kafka120 kafka_2.12-2.5.0]$ bin/kafka-console-producer.sh --topic test --broker-list kafka120:9092,kafka121:9092
>

6.3 生产数据

[zihao@kafka120 kafka_2.12-2.5.0]$ bin/kafka-console-producer.sh --topic test --broker-list kafka120:9092,kafka121:9092
>hello kafka
>hello bigdata
>

对应截图:

6.4 查看消费者

[zihao@kafka120 kafka_2.12-2.5.0]$ bin/kafka-console-producer.sh --topic test --broker-list kafka120:9092,kafka121:9092
>hello kafka
>hello bigdata
>

对应截图:

可以看到数据已经正常的被生产和消费。

至此,Kafka已经部署配置完成。下一章我们以Kafka->Flink-Mysql的场景,给大家分享Flink在开发环境中如何使用!


欢迎大家扫描下面的二维码,关注笔者的公众号:知数知理,文章会逐步同步到微信公众号,并持续更新,方便更多的朋友一起学习交流:

猜你喜欢

转载自blog.csdn.net/dzh284616172/article/details/108630229