当前位置: 首页 > news >正文

Kafka集群部署(手把手部署图文详细版)

1.1.1 部署zookpeer

在node02下载并解压zookeeper软件包

cd /usr/local

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

或者:scp cat@192.168.28.100:/home/cat/zookeeper-3.4.6.tar.gz /tmp(注意目录)

mv zookeeper-3.4.6.tar.gz /usr/local

tar -zxvf zookeeper-3.4.6.tar.gz

ln -s zookeeper-3.4.6 zookeeper(创建软链接,创建快捷方式)

 设置环境变量,在node02-4节点执行命令vim /etc/profile后,在文件末尾添加以下内容:

export ZOOKEEPER_HOME=/usr/local/zookeeper

export PATH=$ZOOKEEPER_HOME/bin:$PATH

添加完成后,执行命令source /etc/profile,使环境变量生效

 修改Zookeeper配置文件,在node02节点执行以下命令,进入Zookeeper所在目录。

cd /usr/local/zookeeper/conf

拷贝配置文件。

cp zoo_sample.cfg zoo.cfg

修改配置文件中以下内容

vim zoo.cfg

dataDir=/usr/local/zookeeper/tmp

server.1=node02:2888:3888

server.2=node03:2888:3888

server.3=node04:2888:3888

步骤 3   创建并编辑myid文件

在node02节点执行以下命令

在node02节点创建zookpeer数据目录

mkdir /usr/local/zookeeper/tmp

touch /usr/local/zookeeper/tmp/myid

echo 1 > /usr/local/zookeeper/tmp/myid

 同步配置, 在node02节点执行以下命令,同步配置到其它节点

scp -r /usr/local/zookeeper-3.4.6 root@node03:/usr/local

scp -r /usr/local/zookeeper-3.4.6 root@node04:/usr/local

修改其它节点配置, 登录node03、node04,创建软链接、修改myid内容。node03:

cd /usr/local

ln -s zookeeper-3.4.6 zookeeper

echo 2 > /usr/local/zookeeper/tmp/myid

node04:

cd /usr/local

ln -s zookeeper-3.4.6 zookeeper

echo 3 > /usr/local/zookeeper/tmp/myid

运行验证分别在node02-4上执行以下命令,启动Zookeeper

cd /usr/local/zookeeper/bin

./zkServer.sh start

注:停止Zookpeer的命令是./zkServer.sh stop查看Zookeeper状态,显示信息如下,表示状态正常

[root@node02 bin]# ./zkServer.sh status

JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: follower

[root@node03 bin]# ./zkServer.sh status

JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: leader

[root@node04 bin]# ./zkServer.sh status

JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: follower

2.1.1 部署Kafka

 下载并解压Kafka, 在node02上执行以下命令:

wget https://archive.apache.org/dist/kafka/0.10.1.1/kafka_2.11-0.10.1.1.tgz

mv kafka_2.11-0.10.1.1.tgz /usr/local

tar -zxvf kafka_2.11-0.10.1.1.tgz

ln -s kafka_2.11-0.10.1.1 kafka

 设置环境变量, 在node02-4节点执行命令vim /etc/profile后,在文件末尾添加以下内容:

export KAFKA_HOME=/usr/local/kafka

export PATH=$KAFKA_HOME/bin:$PATH

添加完成后,执行命令source /etc/profile,使环境变量生效

修改Kafka配置文件在node02执行以下命令,切换到配置文件目录下

cd $KAFKA_HOME/config

在node02上执行命令vim server.properties,修改server.properties的部分内容如下所示:

broker.id=0

host.name=node02

listeners=PLAINTEXT://node02:9092

zookeeper.connect=node02:2181,node03:2181,node04:2181

 同步配置,在node02上执行以下命令,拷贝kafka_2.11-0.10.1.1到node03、4的“/usr/local”目录下

scp -r /usr/local/kafka_2.11-0.10.1.1 root@node03:/usr/local

scp -r /usr/local/kafka_2.11-0.10.1.1 root@node04:/usr/local

登录到node03、4节点,为kafka_2.11-0.10.1.1建立软链接

cd /usr/local

ln -s kafka_2.11-0.10.1.1 kafka

登录到node03节点,切换到$KAFKA_HOME/config目录下,执行命令vim server.properties,修改server.properties的部分内容如下所示:

broker.id=1

host.name=node03# 可填对应的IP地址

listeners=PLAINTEXT://node03:9092

登录到node04节点,切换到$KAFKA_HOME/config目录下,执行命令vim server.properties,修改server.properties的部分内容如下所示:

broker.id=2

host.name=node04# 可填对应的IP地址

listeners=PLAINTEXT://node04:9092

 运行验证分别在node02-4节点上执行以下命令,启动Kafka。

cd /usr/local/kafka/bin

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

然后在node02-4节点上执行jps命令,查看进程状态

[root@node02 bin]# jps

2002 QuorumPeerMain

2901 Jps

2827 Kafka

1502 WrapperSimpleApp

[root@node03 bin]# jps

4625 Kafka

1515 WrapperSimpleApp

2012 QuorumPeerMain

4701 Jps

[root@node04 bin]# jps

7346 Jps

1483 WrapperSimpleApp

2380 QuorumPeerMain

7277 Kafka

显示以上进程状态,表示kafka正常

3.1.1 消息订阅实战

 创建Kafka主题在node02上执行命令:

[root@node02 bin]# kafka-topics.sh --create --topic topic-test1 --partitions 1 --replication-factor 1 --zookeeper 192.168.253.129:2181, 192.168.253.130:2181, 192.168.253.131:2181

Created topic "topic-test1".

在node02、3、4上执行以下命令,都可以查看到上一步骤创建的topic主题

[root@node02 bin]# kafka-topics.sh --list --zookeeper 192.168.253.129:2181, 192.168.253.130:2181, 192.168.253.131:2181

__consumer_offsets

topic-test1

在node03或node04上执行命令,创建消费者,模拟目标系统

[root@node03 bin]# kafka-console-consumer.sh --topic topic-test1 --bootstrap-server 192.168.253.129:9092, 192.168.253.130:9092, 192.168.253.131:9092 --new-consumer

该命令执行后,就会消费topic数据,此窗口不要再做其他操作,不要关闭。

在node02上执行命令,创建生产者,模拟业务系统

[root@node02 bin]# kafka-console-producer.sh --broker-list 192.168.253.129:9092, 192.168.253.130:9092, 192.168.253.131:9092 --topic topic-test1命令执行后,在shell端自行输入数据

在生产者的shell段输入数据后,切换到消费者的shell端,可以看到控制台有相同的数据输出

--实验结束!

相关文章:

  • Vue + Element UI + JSEncrypt实现简单登录页面
  • Spring AI 1.0.0 新变化,从 0.8.1 如何升级
  • 标准库STL
  • day02-统计数据
  • 专题二:Spring源码编译
  • 华为机试HJ12字符串反转
  • 【UE5.3】笔记7 控制Pawn移动
  • pytorch自适应的调整特征图大小
  • LLM - 模型历史
  • 软件测试面试200问【答案+文档】
  • Android Enable 和clickable
  • 鸿蒙小案例-自定义键盘
  • # 职场生活之道:善于团结
  • 【面试题】网络IO多路复用模型之异步事件
  • 【3分钟准备前端面试】vue3
  • 3.7、@ResponseBody 和 @RestController
  • android 一些 utils
  • Codepen 每日精选(2018-3-25)
  • Laravel 实践之路: 数据库迁移与数据填充
  • leetcode-27. Remove Element
  • Redux 中间件分析
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 飞驰在Mesos的涡轮引擎上
  • 复杂数据处理
  • 今年的LC3大会没了?
  • 小程序开发之路(一)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​flutter 代码混淆
  • ![CDATA[ ]] 是什么东东
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • $ git push -u origin master 推送到远程库出错
  • (1)SpringCloud 整合Python
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (推荐)叮当——中文语音对话机器人
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET Project Open Day(2011.11.13)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net6+aspose.words导出word并转pdf
  • .Net各种迷惑命名解释
  • .Net中wcf服务生成及调用
  • @Autowired 与@Resource的区别
  • @Controller和@RestController的区别?