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

kafka入门03——简单实战

目录

安装Java

安装Zookeeper

安装Kafka

生产与消费



主要是记录下Kafka的安装配置过程,前置条件需要安装jdk和zookeeper。

安装Java

1.Oracle官网下载对应jdk安装包

  • 官网地址:Java Downloads | Oracle

  • 好人分享了下载需要的oracle账号,传送门Oracle账号分享_oracle 账户分享-CSDN博客

2.将本地压缩包上传到虚拟机自定义路径,路径看诸君的习惯,敝人使的/usr/local/java

使用SSH远程连接工具FinalShell上传jdk压缩包(上传文件也看诸君喜好的SSH连接工具),FinalShell安装下载:【安装教程】SSH远程连接工具-FinalShell的安装_finalshell安装_Summer_may的博客-CSDN博客

3.解压缩,在压缩包路径下输入: tar -zxvf 上传的jdk压缩包名

tar -zvxf jdk-8u391-linux-x64.tar.gz

4.编辑环境变量,打开配置文件 vim /etc/profile 或者 vi /etc/profile。在文件最后添加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_391
 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 
export PATH=$PATH:$JAVA_HOME/bin
  • JAVA_HOME配置成自己的路径

  • 按i进行编辑,完成后按esc退出编辑模式,“shift+:”输入“wq!”保存并退出

5.刷新全局配置使生效

cd / #退回到根目录
 
. /etc/profile #环境变量配置刷新

最后检查java版本

java -version

安装Zookeeper

1.java确认安装过了,这里直接开始安装zookeeper。

多一句,自zk3.5.5版本以后,已编译的jar包,尾部有bin,应该使用的是apache-zookeeper-3.8.3-bin.tar.gz。避免报错:“找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain”。(图片来自网络引用)

官网地址:Apache Download Mirrors

2.上传压缩包并解压,参照上文中FinalShell的方式。

cd /usr/local/zookeeper/
tar -zvxf apache-zookeeper-3.8.3-bin.tar.gz 

3.重命名zoo_sample.cfg为zoo.cfg

# cp conf/zoo_sample.cfg conf/zoo.cfg

zookeeper的server启动脚本使用的配置文件名称是zoo.cfg,不改名会报错

4.进入bin目录,使用zkServer.sh启动zookeeper,如果报错“-bash: zkServer.sh: command not found”就使用“./zkServer.sh start”

# zkServer.sh start

5.查看启动状态

# zkServer.sh status

6.使用Cli验证

# zkCli.sh

简单操作:

1.创建节点 create /zkTest myData

2.查看节点 get /zkTest 或者 get -s /zkTest

3.删除节点 delete /zkTest

4.退出cli客户端 quit

安装Kafka

1.官网下载压缩包到本地。官网地址:https://kafka.apache.org/downloads

2.根据上文一样,使用远程连接工具FinalShell上传压缩包进行解压。

tar -zxvf  kafka_2.12-3.6.0.tgz

3.确认Kafka相关配置(kafka依赖Zookeeper先启动Zookeeper服务)

# cd /usr/local/kafka/kafka_2.12-3.5.0/config/
# vi server.properties 

4.进入bin目录使用kafka-server-start.sh通过config配置启动Zookeeper服务

[root@10 bin]# ./kafka-server-start.sh ../config/server.properties 

5.重新打开一个SSH连接,通过jps命令查看kafka启动状态

[root@10 kafka_2.12-3.5.0]# jps -l

生产与消费

1.进入kafka的bin目录,先来创建个topic验证下

[root@10 bin]# ./kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic topic-test --replication-factor 3 --partitions 4

报错:Exception in thread "main" joptsimple.UnrecognizedOptionException: zookeeper is not a recognized option

原因是:Kafka 版本过高,命令不存在

修改命令:

[root@10 bin]# ./kafka-topics.sh --bootstrap-server localhost:9092  --create --topic topic-test --replication-factor 3 --partitions 4

还是报错: ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 1.

原因是:zookeeper使用的单机部署,只有一个broker。创建topic的命令中分区是4,副本是3,超出了数量限制。

修改命令:

[root@10 bin]# ./kafka-topics.sh --bootstrap-server localhost:9092  --create --topic topic-test --replication-factor 1 --partitions 4

创建topic成功

2.展示topic信息:

[root@10 bin]# ./kafka-topics.sh --bootstrap-server localhost:9092  --describe --topic topic-test

3.进入kafka的bin目录使用自带的kafka-console-consumer.sh脚本订阅主题topic-test。

[root@10 bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-test

这个时候topic-test没有存入任何消息,所以脚本还不能消费任何消息。

4.打开一个新的SSH连接,进入kafka的bin目录使用自带的kafka-console-producer.sh脚本发送消息到主题topic-test。

[root@10 bin]# ./kafka-console-producer.sh --broker-list localhost:9092 --topic topic-test

发送“Hello kafka,”"Hello,test"

consumer连接窗口就能消费消息了。

到此,简单的kafka实战案例就结束了。


http://www.kler.cn/news/107031.html

相关文章:

  • 负载均衡策略 LVS
  • 云服务器的先驱,亚马逊云科技海外云服务器领军者
  • 【Java题】输出基本数据类型的最大值和最小值,以及float和double的正无穷大值和负无穷大值
  • NodeJS爬取墨刀上的设计图片
  • 【密评】商用密码应用安全性评估从业人员考核题库(十五)
  • 视频剪辑高手必学:批量制作画中画效果的秘诀
  • arduino抢答器
  • 【java】建筑施工一体化智慧工地信息管理系统源码
  • AutoCAD 2024 Mac中文附激活补丁 兼容M1.M2电脑
  • 竞赛选题 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序
  • 大厂面试题-JVM中的三色标记法是什么?
  • JVM 参数
  • 分治算法解决归并排序问题
  • 【ROS入门】雷达、摄像头及kinect信息仿真以及显示
  • 前端的基本介绍
  • 5.MySQL基本查询
  • 智慧垃圾站:AI视频智能识别技术助力智慧环保项目,以“智”替人强监管
  • MongoDB 的集群架构与设计
  • Angular-03:组件模板
  • 如何在 uniapp 里面使用 pinia 数据持久化 (pinia-plugin-persistedstate)
  • 关于路由转发
  • Mysql binlog日志功能使用,简单易懂
  • centos更改yum源
  • 2023大湾区杯粤港澳金融数学建模竞赛思路+模型+代码
  • 直方图均衡化算法
  • 最长公共子序列(LCS)与最长上升子序列(LIS)问题的相互转换
  • uni-app集成uni-simple-router,报错:Uncaught ReferenceError: ROUTES is not defined
  • element-plus form表单的二次封装
  • C++工程使用curl 静态库
  • 3DCAT+东风日产:共建线上个性化订车实时云渲染方案