kafka入门03——简单实战

news2024/12/24 11:35:17

目录

安装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.coloradmin.cn/o/1129069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux基本指令(Chapter 2)

linux基本指令(二) 1.date指令 语法:date [option] [format] date命令的作用是显示时间:使用date %Y:%m:%d可以指定格式显示时间.例如:(注意这里的和%之后不要有任何间隔)并且这里是加号,并不是减号 1.在显示方面,使用者可以设定欲显示的格式,格式设…

NeRF综述

文章目录 《Nerf: Neural radiance field in 3d vision, a comprehensive review 》一、数据集:二、基于方法的分类(Method-based Taxonomy)三、基于应用的分类(Application-based Taxonomy)四、未来展望 《Nerf: Neur…

盘点网安最好入手的10大岗位,最高月薪30K!

前段时间,知名机构麦可思研究院发布了《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,信息安全位列第一。 对于网络安全的发展与就业前景已经说过很多,它是收入较高的岗位之一,在转行领域也占据着热…

番外8.1 Task

---------系统中有两个账号,分别是alex与arod,这两个账号除了支持自己的组,还共同支持一个名为project的组。如这两个账号需要共同拥有/srv/ahome/目录的开发权,且该目录不允许其他账号进入查阅,请问该目录的权限应如何…

动手学深度学习—含并行连结的网络GoogLeNet(代码详解)

目录 1. Inception块3. GoogLeNet模型3. 训练模型 GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进,并且在2014年的ImageNet图像识别挑战赛中获得了不错的效果。 1. Inception块 GoogLeNet论文解决了多大的卷积核最合适的问题。 Inception块…

yolo数据增强,同时旋转txt标签文件

github https://github.com/vkdx/vkdx_cnn-.git YOLO格式txt文件分析 标注好的txt文件中有对应每个标注框的信息,从左到有分别是: class:类别 x_center:标注框中心相对于图像的x坐标 y_center:标注框中心相对于图像的y坐标 w:标…

Day09字符流缓冲流序列化流IO框架

字符流 FileReader(文件字符输入流) 使用文件字符输入流,有啥好处? 读取中文不会出现乱码问题 FileWriter(文件字符输出流) 利用字符流将一个文本文件复制到E:盘下,例如:D:/1.txt复制到E:/2.txt 请使用…

C语言每日一题(17)数组匹配

牛客网 BC156 牛牛的数组匹配 题目描述 描述 牛牛刚学会数组不久,他拿到两个数组 a 和 b,询问 b 的哪一段连续子数组之和与数组 a 之和最接近。 如果有多个子数组之和同样接近,输出起始点最靠左的数组。 输入描述: 第一行输…

如何在不损失质量的情况下调整图像大小

如何在不损失质量的情况下调整图像大小 如果您在线工作,就会知道图像质量对于呈现干净专业的外观有多么重要。 库存图像和免版税图像很容易找到,但是如何在不损失质量的情况下调整图像大小以使其适合您的目的? 无论您是想将图片用于博客文…

【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 变量 1. 局部变量与成员变量的区别&#xff1a…

小白必看,手把手教你安装Python

目录 一,Python介绍 二,安装 Python 三,各种疑难杂症: 一,Python介绍 Python 是这两年来比较流行的一门编程语言,主要卖点是其相对简单的语法以及丰富的第三方库,下面我来带大家安装、配置 P…

【七】SpringBoot为什么可以打成 jar包启动

SpringBoot为什么可以打成 jar包启动 简介:庆幸的是夜跑的习惯一直都在坚持,正如现在坚持写博客一样。最开始刚接触springboot的时候就觉得很神奇,当时也去研究了一番,今晚夜跑又想起来了这茬事,于是想着应该可以记录一…

Redis数据类型——list类型介绍及基本操作

1.list类型介绍 redis中的list就是一个双向链表的结构 2.list类型数据基本操作

己知一棵有 2011 个结点的树,其叶结点个数为 116,该树对应的二叉树无右孩子的结点个数是

前言 树转二叉树的规则:每个结点左指针指向它的第一个孩子,右指针指向它在树中相邻的右兄弟,即“左孩子右兄弟“。 拓展:树中一个叶子节点在转化为二叉树的时候,如果它有右兄弟,那么它右指针会指向其兄弟节…

【软件安装】Linux系统中安装MySQL数据库服务

这篇文章,主要介绍如何在Linux系统中安装MySQL数据库服务。 目录 一、Linux安装MySQL 1.1、下载MySQL安装包 1.2、解压MySQL安装包 1.3、更改存放目录 1.4、创建用户组和用户 1.5、创建数据目录data 1.6、创建my.cnf配置文件 1.7、初始化数据库 1.8、添加m…

报告从root到sink的clock tree物理长度的脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 距离clock root物理距离最远的sink未必是latency最大的,但是往往clock path的长度受其影响,比如一些寄存器放在距离clock root很远的channel里,与其balance的reg就需要垫 delay detour buffer,即…

【Maven教程】(九):使用 Maven 进行测试 ~

目录 1️⃣ account-captcha 1.1 account-captcha 1.2 account-captcha 的主代码 1.3 account-captcha的测试代码 2️⃣ maven-surefire-plugin 简介 3️⃣ 跳过测试 4️⃣ 动态指定要运行的测试用例 5️⃣ 包含与排除测试用例 6️⃣ 测试报告 6.1基本的测试报告 6.…

鸿蒙应用开发之环境搭建

一、环境搭建 正所谓“工欲善其事,必先利其器”。在正式学习一门课程之前,我们首先需要做的就是搭建开发环境。首先,我们需要下载DevEco Studio,DevEco Studio支持Windows系统和macOS系统,在开发HarmonyOS应用/服务前…

力扣每日一题64:最小路径和

题目描述: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,1],[4,2…

高通Quick Charge快速充电原理分析

1 三段式AC充电器 涓流、恒流、恒压。 2 QC 2.0 2.1 高通Quick Charge 2.0 快速充电原理分析 QC 2.0快速充电需要手机端和充电器都支持才行。 当将充电器端通过数据线连到手机上时,充电器默认的是将D和D-短接的,这样手机端探测到的充电器类型是DCP&#…