kafka集群搭建超详细教程

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 分享一下kafka 集群搭建的详细过程

前言

大家好,我是风云,欢迎大家关注我的博客,在未来的日子里我们一起来学习大数据相关的技术,一起努力奋斗,遇见更好的自己!

百度百科对Kafka有如下描述:

Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

具备以下特点:

  • 高吞吐量、低延迟kafka每秒可以处理百万条消息,它的延迟最低只有几毫秒,topic可以分多个partition, consumer group partition进行consumer操作
  • 可扩展性kafka集群支持热扩展
  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  • 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
  • 高并发:支持数千个客户端同时读写

基于Kafka具备这么多特点,在大数据开发领域已经占据不可或缺的地位,我们在工作中就会不可避免与之打交道,那么搭建Kafka集群就非常有必要了,今天就来分享一下kafka 集群搭建的详细过程。

详细步骤

前期准备:

  1. 准备三个虚拟机:
    192.168.36.121 hadoop1
    192.168.36.122 hadoop2
    192.168.36.123 hadoop3
  2. 虚拟机上配置有ssh服务,可以进行免密登录
  3. Kafka运行在JVM上,需要安装JDK
  4. kafka依赖zookeeper,需要安装zookeeper,可以参考我的另一篇文章《zookeeper集群搭建超详细教程》

注意:下边的步骤都是在hadoop1这个节点上进行的操作,除特殊说明外。

1、下载安装包

cd /opt/module
# 下载kafka安装包
wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz

2、解压

# 解压kafka安装包
tar -zxvf kafka_2.13-2.6.0.tgz
mv kafka_2.13-2.6.0 kafka

3、创建存放kafka消息的目录

cd kafka
mkdir kafka-logs

4、修改配置文件

vim /opt/module/kafka/config/server.properties
# 修改如下参数
broker.id=0 
listeners=PLAINTEXT://hadoop1:9092
log.dirs=/opt/module/kafka/kafka-logs
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181

参数说明:

broker.id : 集群内全局唯一标识,每个节点上需要设置不同的值

listeners:这个IP地址也是与本机相关的,每个节点上设置为自己的IP地址

log.dirs :存放kafka消息的

zookeeper.connect : 配置的是zookeeper集群地址

5、分发kafka安装目录

# 分发kafka安装目录给其他集群节点
scp -r /opt/module/kafka/ hadoop2:/opt/module
scp -r /opt/module/kafka/ hadoop3:/opt/module

分发完成后,其他集群节点都需要修改配置文件server.properties中的 broker.idlisteners 参数。

6、编写kafka集群操作脚本

# 导入java环境
vim /etc/profile
# 添加如下内容(注意:填写自己的java安装目录)
export JAVA_HOME=/usr/java/jdk1.8.0_131
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
cd /opt/module/kafka/bin
# 创建kafka启动脚本
vim kafka-cluster.sh
# 添加如下内容
#!/bin/bash
case $1 in
"start"){
  for i in hadoop1 hadoop2 hadoop3
  do 
     echo -------------------------------- $i kafka 启动 ---------------------------
    ssh $i "source /etc/profile;/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
  done
}
;;
"stop"){
  for i in hadoop1 hadoop2 hadoop3
  do
    echo -------------------------------- $i kafka 停止 ---------------------------
    ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh"
  done
}
;;
esac
# 保存退出后,修改执行权限
chmod +x ./kafka-cluster.sh

脚本命令说明:

启动kafka集群命令
./kafka-cluster.sh start
停止kafka集群命令
./kafka-cluster.sh stop

7、启动kafka集群

首先启动zookeeper集群

然后执行kafka集群脚本启动命令

cd /opt/module/kafka/bin
./kafka-cluster.sh start

8、测试

kafka集群启动成功后,我们就可以对kafka集群进行操作了。

创建主题

cd /opt/module/kafka
./bin/kafka-topics.sh --create --bootstrap-server hadoop1:9092 --replication-factor 3 --partitions 1 --topic test

查看主题列表

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

启动控制台生产者

./bin/kafka-console-producer.sh --broker-list hadoop1:9092 --topic test

启动控制台消费者

./bin/kafka-console-consumer.sh --bootstrap-server hadoop1:9092 --topic test --from-beginning

在生产者控制台输入hello kafka,消费者控制台,就可以消费到生产者的消息,输出 hello kafka,表示消费端成功消费了生产者生产的消息!

至此,我们就顺利完成了kafka集群搭建的整个过程!

希望大家都能有所收获,喜欢的可以点赞和收藏,有疑问的可以在评论区留言,也欢迎转发分享给更多的人!

相关文章
|
2月前
|
消息中间件 Kafka
mac 搭建kafka系列教程
mac 搭建kafka系列教程
33 0
mac 搭建kafka系列教程
|
2月前
|
消息中间件 安全 Kafka
2024年了,如何更好的搭建Kafka集群?
我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。
437 2
2024年了,如何更好的搭建Kafka集群?
|
3月前
|
消息中间件 存储 数据可视化
kafka高可用集群搭建
kafka高可用集群搭建
43 0
|
5月前
|
消息中间件 Java Kafka
微服务技术系列教程(36) - SpringCloud-使用Kafka实现消息驱动
微服务技术系列教程(36) - SpringCloud-使用Kafka实现消息驱动
47 0
|
3月前
|
消息中间件 Kafka Linux
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
65 0
|
3月前
|
消息中间件 数据可视化 关系型数据库
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
151 0
|
4月前
|
消息中间件 存储 算法
Kafka Raft集群搭建
Kafka Raft集群搭建
74 0
|
1月前
|
消息中间件 存储 缓存
Kafka【基础知识 02】集群+副本机制+数据请求+物理存储+数据存储设计(图片来源于网络)
【2月更文挑战第20天】Kafka【基础知识 02】集群+副本机制+数据请求+物理存储+数据存储设计(图片来源于网络)
43 1
|
1月前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
140 1
|
5月前
|
消息中间件 数据可视化 Java
消息中间件系列教程(22) -Kafka- SpringBoot集成Kafka
消息中间件系列教程(22) -Kafka- SpringBoot集成Kafka
67 0

热门文章

最新文章