栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka 集群搭建

Kafka 集群搭建

Kafka 集群搭建
      • 安装前准备
      • 集群搭建
      • 集群启动
      • 集群操作
      • Kafka 基准测试

安装前准备

环境准备

云服务器 3 台(Centos 7)

安装包下载

Apache Kafka 2.12-2.4.1

# 版本号说明
scala 版本号 - kafka 版本号,即 scala 的版本号为 2.12 ,kafka 的版本号为 2.4.1

服务器域名映射

# 3 台服务器都执行
# 1. 编辑 hosts 文件
vim /etc/hosts

# 2. 增加以下内容
172.17.0.8 node1
172.17.20.14 node2
172.17.30.12 node3

zookeeper 环境准备

zookeeper 集群搭建

在 3 台服务器上搭建好 zookeeper 集群并启动

集群搭建

上传安装包并解压

# 3 台服务器都操作
cd /opt/server/

tar -xvzf kafka_2.12-2.4.1.tgz -C /opt/server/

修改配置文件

# 3 台服务器都操作
cd /opt/server/kafka_2.12-2.4.1/config

# 1.编辑 
vim server.properties

# 2.增加以下内容

  # 指定 broker 的 id,注意:第 2 台 和 第 3  台服务器的值分别为 2 和 3 (仅此处不同)
  broker.id=1
  # 指定Kafka数据的位置
  log.dirs=/opt/server/kafka_2.12-2.4.1/data
  # 配置zk的三个节点
  zookeeper.connect=node1:2181,node2:2181,node3:2181

配置环境变量

vim /etc/profile

# 增加以下内容
export KAFKA_HOME=/opt/server/kafka_2.12-2.4.1
export PATH=:$PATH:${KAFKA_HOME}

# 刷新配置
source /etc/profile
集群启动

启动

cd /opt/server/kafka_2.12-2.4.1

# 后台启动
nohup bin/kafka-server-start.sh config/server.properties &
集群操作

查看 topic 列表

bin/kafka-topics.sh --bootstrap-server node1:9092 --list


创建 topic

# 创建一个名称为 test 的 topic
bin/kafka-topics.sh --create --bootstrap-server node1:9092 --topic test

删除 topic

bin/kafka-topics.sh --delete --bootstrap-server node1:9092 --topic test

生产者生产消息

执行后,可以多次输入,每次回车,代表生产一条消息,Ctrl + C 则结束

# 生产一个消息到名称为 test 的 topic 中 
# Kafka 内置的测试程序
bin/kafka-console-producer.sh --broker-list node1:9092 --topic test

消费者消费消息

执行后,等待生产者生产消息,生产者每生产一条则显示一条,Ctrl + C 则结束

# 从名称为 test 的 topic 中消费一个消息
# Kafka 内置的测试程序
bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic test --from-beginning
Kafka 基准测试

基准测试(benchmark testing)说明

基准是一种测量和评估软件性能指标的活动。我们可以通过基准测试,了解到软件、硬件的性能水平。主要测试负载的执行时间、传输速度、吞吐量、资源占用率等

# 生产者参数说明
--topic topic的名字
--num-records	总共指定生产数据量(默认5000W)
--throughput	指定吞吐量——限流(-1不指定)
--record-size   record数据大小(字节)
--producer-props bootstrap.servers=node1:9092,node2:9092,node3:9092 acks=1 指定Kafka集群地址,ACK模式

# 消费者参数说明
--broker-list 指定kafka集群地址
--topic 指定topic的名称
--fetch-size 每次拉取的数据大小
--messages 总共要消费的消息个数

基准测试总结
① 生产者

指标1分区1副本1分区3副本3分区1副本
吞吐量3.03w records/s2.84w records/s3.58 w records/s
吞吐速率28.93 MB/s27.04 MB/s34.17 MB/s

② 消费者

指标1分区1副本1分区3副本3分区1副本
每秒消费的数据量32.20 MB/s28.59 MB/s37.94 MB/s
每秒消费的条数3.38 w 条/s3.00w 条/s3.98w 条/s

分区相同,副本不同:生产者随着副本增多吞吐量降低;消费者随着副本增多消费速度降低 (副本尽量少)

副本相同,分区不同:生产者随着分区增多吞吐量提高;消费者随着分区增多消费速度提高 (分区尽量多)

基准测试(1个分区1个副本)

① 启动 Kafka 集群

② 创建一个1个分区1个副本的 topic: benchmark

bin/kafka-topics.sh --zookeeper node1:2181 --create --topic benchmark --partitions 1 --replication-factor 1

③ 同时运行生产者、消费者基准测试程序(测试50W的消息)

# 运行生产者
bin/kafka-producer-perf-test.sh --topic benchmark --num-records 500000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=node1:9092,node2:9092,node3:9092 acks=1

# 运行消费者
bin/kafka-consumer-perf-test.sh --broker-list node1:9092,node2:9092,node3:9092 --topic benchmark --fetch-size 1048576 --messages 500000

④ 测试结果


基准测试(3个分区1个副本)

① 启动 Kafka 集群

② 创建一个3个分区1个副本的 topic: benchmark

bin/kafka-topics.sh --zookeeper node1:2181 --create --topic benchmark --partitions 3 --replication-factor 1

③ 同时运行生产者、消费者基准测试程序(测试500W的消息)

# 运行生产者
bin/kafka-producer-perf-test.sh --topic benchmark --num-records 500000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=node1:9092,node2:9092,node3:9092 acks=1

# 运行消费者
bin/kafka-consumer-perf-test.sh --broker-list node1:9092,node2:9092,node3:9092 --topic benchmark --fetch-size 1048576 --messages 500000

④ 测试结果

基准测试(1个分区3个副本)

① 启动 Kafka 集群

② 创建一个1个分区3个副本的 topic: benchmark

bin/kafka-topics.sh --zookeeper node1:2181 --create --topic benchmark --partitions 1 --replication-factor 3

③ 同时运行生产者、消费者基准测试程序(测试500W的消息)

# 运行生产者
bin/kafka-producer-perf-test.sh --topic benchmark --num-records 500000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=node1:9092,node2:9092,node3:9092 acks=1

# 运行消费者
bin/kafka-consumer-perf-test.sh --broker-list node1:9092,node2:9092,node3:9092 --topic benchmark --fetch-size 1048576 --messages 500000

④ 测试结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号