点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
- Hadoop(已更完)
- HDFS(已更完)
- MapReduce(已更完)
- Hive(已更完)
- Flume(已更完)
- Sqoop(已更完)
- Zookeeper(已更完)
- HBase(已更完)
- Redis (已更完)
- Kafka (正在更新…)
章节内容
上节我们完成的内容:
- Kafka核心概念介绍
- Producer
- Consumer
- Topic
- Partition
- 等等
简单介绍
Kafka在3版本以下都是需要ZooKeeper来做协调器的,在3版本以上,Kafka实现了自己的协议去做高可用,但是大家也没有都切换到这个新的方案上,还是比较保守的(如果在生产环境上 )。
Kafka 2.X
Kafka 2.X 是 Kafka 的一个重要版本系列,包含了多个子版本(如 2.0.0, 2.1.0, 2.3.0 等)。这一系列版本为 Kafka 引入了许多新特性和改进:
Core 新特性
- Kafka Streams 增强: 增加了 KStream-KTable 外连接、全局表(Global Tables)、交互式查询(Interactive Queries)等功能。
- 更好的性能: Kafka 2.X 版本改进了 broker 和 producer 的性能,包括改进的内存管理和日志管理系统。
- 动态配置: 支持动态配置 Broker、Topic 和 Broker 客户端,不再需要重启 Broker 来更新这些配置。
Kafka Connect 改进
- 集成 REST API: 改进了 Kafka Connect 的 REST API,使得管理和监控 Connect 任务更加方便。
- 增量镜像任务: 支持基于增量数据的镜像任务(MirrorMaker),改进了跨数据中心的数据复制。
Security 增强
- Kerberos 支持增强: 对 Kerberos 的支持更加健壮和易用,包括支持多个 Kerberos 域和对不同 Kafka 组件进行身份验证。
- ACL 改进: 增加了对 ACL(访问控制列表)的增强支持,简化了安全性配置。
日志管理
- 基于时间的日志保留策略: Kafka 2.X 引入了基于时间的日志保留策略,可以按时间段(如每周)自动删除旧的日志。
Kafka 3.X
Kafka 3.X 是 Kafka 的另一个重要版本系列,随着 Kafka 进入 3.X 时代,系统变得更加稳定和高效,同时还引入了一些重大的变化和新特性。
KRaft (Kafka Raft)
- KRaft 模式: Kafka 3.X 引入了 KRaft 模式,作为 Kafka 的新控制平面架构,目的是替代原先的 ZooKeeper 依赖。KRaft 使用 Raft 协议来管理控制平面元数据,使得 Kafka 可以在没有 ZooKeeper 的情况下运行。
- Zookeeper 逐步废弃: 随着 KRaft 的引入,Kafka 开始逐步废弃对 ZooKeeper 的依赖,从而简化了 Kafka 的运维和部署。
性能与可扩展性
- 延迟优化: Kafka 3.X 进一步优化了延迟和吞吐量,使得在大规模数据流处理中的表现更佳。
- 分区的增强: 支持更多的分区,改进了分区管理和分配策略,使得 Kafka 在大规模集群中运行更加高效。
流式处理改进
- Kafka Streams: 改进了 Kafka Streams 的性能,并引入了新的操作符和优化策略,使得流式处理更加灵活和高效。
- 流处理的扩展性: 支持更大规模的流处理应用,并增强了状态存储和管理能力。
兼容性和升级
- 兼容性改进: Kafka 3.X 保持了对 Kafka 2.X 客户端的兼容性,使得从 2.X 版本升级到 3.X 版本更加平滑。
- 滚动升级: 提供了滚动升级支持,使得 Kafka 集群可以在不中断服务的情况下,从 2.X 升级到 3.X。
Kafka Connect
- 改进的错误处理: 增强了 Kafka Connect 的错误处理能力,提供了更好的错误隔离和恢复机制。
- 更好的监控: 改进了对 Connect 任务的监控,提供了更多的指标和管理选项。
ZooKeeper
环境变量
# 我们要确保有ZooKeeper环境,之前已经安装过了。最好确认一下你的ZooKeeper环境是正确的。vim /etc/profile
检查你的环境变量是否配置完毕,我这里是 3台云服务器都配置好了。
# zookeeperexportZOOKEEPER_HOME=/opt/servers/apache-zookeeper-3.8.4-bin
exportPATH=$PATH:$ZOOKEEPER_HOME/bin
配置的结果大致如下:
记得刷新环境变量
source /etc/profile
验证环境
如果你已经启动了ZooKeeper,那么进行下面的服务测试:
zkServer.sh status
如果你出现下图的样子,你的ZK是没有问题的。
可以从下图中看到,我这台是 Follower 节点。主节点好像是 h122 节点。
Kafka
下载项目
我这里选择的是 2.7 的版本,你可以到 GitHub 或者 官方下载
https://github.com/apache/kafka/releases/tag/2.7.2
https://kafka.apache.org/downloads
GitHub是源码,需要自己编译!!!
官方下载地址是编译的:
解压配置
下载好之后,上传到服务器上,或者直接在服务器上 wget 进行下载。
tar-zxvf kafka_2.12-2.7.2.tgz
按照之前的规范,我们需要进行移动处理:
mv kafka_2.12-2.7.2 ../servers
环境变量
vim /etc/profile
写入如下的环境变量内容
# kafkaexportKAFKA_HOME=/opt/servers/kafka_2.12-2.7.2
exportPATH=$PATH:$KAFKA_HOME/bin
记得刷新环境变量
启动配置
Kafka是需要连接ZooKeeper的,所以我们需要修改Kafka的配置。
vim /opt/servers/kafka_2.12-2.7.2/config/server.properties
ZK配置
修改 zookeeper.connet 这一行:
log配置
这里注意修改一下,同时记得把文件夹创建出来
启动服务
kafka-server-start.sh /opt/servers/kafka_2.12-2.7.2/config/server.properties
版权归原作者 武子康 所有, 如有侵权,请联系我们删除。