IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 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

④ 测试结果
在这里插入图片描述
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:09:17  更:2021-08-07 12:10:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 19:50:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码