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

基于飞腾平台的Kafka移植与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台《飞腾平台Kafka_v3.0.0移植安装手册》

1 介绍

  Kafka是一款开源的、轻量级的、分布式的、可分区和具有复制备份的(Replicated)、基于ZooKeeper协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,Kafka能够很好地处理活跃的流数据,使得数据在各个子系统中高性能、低延迟地不停流转,kafka由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。主要处理大数据中的实时流式数据处理场景。

2 环境要求

2.1 硬件要求

  硬件要求如下表所示。

项目说明
CPUFT-2000+/64服务器
网络无要求
存储无要求
内存无要求

2.2 操作系统要求

  操作系统要求如下表所示。

项目说明
CentOS8
Kernel4.18.0-193.el8.aarch64

2.3 软件环境要求

  软件环境要求如下表所示。

项目说明
JDK1.8.0_281

3 安装步骤

3.1 下载Kafka压缩包

  1. 前往官网下载Kafka安装包:https://kafka.apache.org/downloads

  注*:在官网下载Kafka安装包时,要选择编译好的,可以直接使用的压缩包,如下图所示:

image.png

  2. 解压压缩包

tar -xzvf kafka_2.12-3.0.0.tgz

3.2 启动Zookeeper

  Kafka 0.5.x版本以上就已经自带ZooKeper,也可以单独使用Zookeeper安装文件建立集群。本文使用的是Kafka自带的Zookeeper。

>>bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

  -daemon参数的作用是在后台启动Zookeeper,并将输出的信息保存在执行目录的logs/zookeeper.out文件中。(若Zookeeper启动未成功,执行文件中的报错信息会非常重要)

3.2.1 Zookeeper启动时可能会出现的报错信息

  1)failed; error=’Not enough space’ (errno=12)

  出现此错误的原因是服务器内存过小,可以通过修改bin/zookeeper-server-start.sh中的参数,来减少内存的使用,将配置文件中的-Xmx512M -Xms512M改小。如下图所示

image.png

  2)Error: Unexpected exception exiting abnormally. java,net.BindException: Adress already in use

  出现此错误的原因是Zookeeper端口2181被占用(2181一般为默认端口,具体端口信息还是要查看报错日志)。首先要查看端口被哪个进程占用了,使用命令:

>>sudo lsof -i:2181

  或者

>>sudo netstat -atunlp | grep 2181

  通过返回的信息找到占用端口进程的PID:(下图分别对应第一条与第二条代码的返回信息)

image.png

image.png

  可见2076182就是占用2181端口进程,之后使用如下代码将进程结束问题就解决了。

>> kill -9 2076182

  3)java.io.IOException: No snapshot found, but there are log entries

  网上大部分论坛(如CSDN,博客园)对此错误的解释是在启动zookeeper时恢复数据的报错,但是对于刚刚下载并配置的人来说,可以简单的理解为在此服务器上存在另一个版本的zookeeper,两个zookeeper都在同一默认目录下储存数据,导致这个错误。解决这个问题的方法就是修改zookeeper.properties文件中的dataDir,如下图所示:

image.png

3.2.2 查看Zookeeper是否启动成功

  普遍使用的检查Zookeeper是否启动的代码如下:

>>ps -aux | grep ’zookeeper’
>>ps -elf | grep zookeeper

  但是,无论Zookeeper是否启动,上述代码均有返回信息,区别在于,如果Zookeeper启动成功,会返回一大串Zookeeper的相关路径,如下图所示:

image.png

  并且,为了保险起见,再次查看2181端口的占用情况,发现2181已被监听,则说明Zookeeper启动成功。

3.2.3 关闭Zookeeper

>>bin/zookeeper-server-stop.sh -daemon config/zookeeper.properties

3.3 启动Kafka

3.3.1 Kafka配置

  kafka的配置文件在config/server.properties文件中,主要需要查看和修改参数如下:

  1)broker.id

image.png

  broker.id很重要,但是一般不需要更改(基本都是从0开始)。

  2)listeners

image.png

  listeners是监听地址,按照文本提供的格式填写主机地址就可以,如上图所示。在初始配置文档中,listeners是被注释掉的,而网上大部分教程中的listeners并没有被注释掉,在之后启动3.0.0版本的Kafka时,未注释掉listeners会导致Kafka启动失败(原因暂时未知),所以在此建议先将监听地址注释掉,了解它的作用即可。

  3)num.partitions

image.png

  num.partitions是新建Topic的默认Partition数量,虽然Partition数量提升,一定程度上可以提升并发性,但是为了尽可能的在第一次配置Kafka时减少报错,先将其设置为1。

  4)log.dirs

image.png

  log.dirs是日志目录,需要根据自己的情况设置。需要注意的是,最好单独建立并命名一个文件夹用来保存日志,因为若日志目录下还保存有别的文件,在启动Kafka时会出现报错。

  5)启动Kafka

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

3.3.2 查看Kafka是否启动成功

  -daemon参数会将任务转入后台运行,输出日志信息将写入日志文件,日志文件在执行命令的目录下的logs目录中kafkaServer.out,结尾输同started说明启动成功。如下图所示:

image.png

  也可以使用jps命令,查看是否有Kafka进程:

>>jps

image.png

3.3.3 关闭Kafka

>>bin/kafka-server-stop.sh config/server.properties

4 测试

  1)前提:Kafka和Zookeeper已启动完成

  2)创建topic

  大部分网上教程使用的代码为:

>>bin/kafka-topics.sh --create --zookeeper 172.16.32.201:2181 --replication-factor 3 --partitions 3
--topic test

  但是,在我使用的3.0.0版本中,使用上述代码会出现报错:zookeeper is not a recognized option。查询之后发现,在0.9版本之后,创建主题的命令为:

>>kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 
--topic test

  3)查看已创建的topic

>>kafka-topics.sh --list --bootstrap-server 172.16.32.201:9092

image.png

  4)发送消息

>>kafka-console-producer.sh --broker-list 172.16.32.201:9092 --topic test

image.png

  5)接收消息

>>kafka-console-consumer.sh --bootstrap-server 172.16.32.201:9092 --topic test 
--from-beginning

image.png

  6)查看特定主题的详细信息

>>kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test

image.png

  7)删除主题

>>bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test

推荐阅读

  • 基于飞腾平台的Spark移植与安装
  • 飞腾腾云S2500 Nginx单机环回测试性能调优方法

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

相关文章:

基于飞腾平台的Kafka移植与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…...

【Python数据结构与算法】递归----算24

题目:算24 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定…...

TOSHIBA东芝代理商--芯智雲城,提供订货、报价、选型等服务!

关于东芝 东芝创立于1875年7月,是日本大型半导体制造商,全球知名的综合机电制造商和解决方案提供者,世界大型综合电子电器企业集团。东芝集团原名东京芝浦电气株式会社,在1939年东京电器与芝浦制作所正式合并成为现在的东芝&…...

sdwan

分支互联网络解决方案 - 华为企业业务 分支互联网络解决方案 随着5G、AI、物联网等新兴技术与云紧密结合,企业业务智能化和云化加速。 企业分支WAN流量激增,传统以MPLS专线为主的广域互联网络难以支撑业务发展。SD-WAN成为应对云时代的必然选择。 SD…...

Linux: network: 建立socket以及设置nonblock/opt所需的时间

最近在扩大socket数量的时候发现程序在完成所有的socket创建设置的时间不短。单线程下。 创建socket的步骤是,(调用glibc/system call的接口): socket bind fcntl (sock, F_SETFL, flags); setsockopt 通过测试发现这几个步骤前后…...

git使用及代码规范

参考链接 git flow 简介代码审核的典型问题gitlab工作流...

职业教育大数据实验实训室建设应用案例

大数据作为一种重要的信息技术,对各行各业产生了深远的影响。职业教育作为培养应用型人才的摇篮,建设大数据实验实训室,对于提高学生的数据分析能力和解决实际问题的能力具有重要意义。唯众作为一家专注于教育技术领域的企业,凭借…...

【Academy】反序列化漏洞Insecure deserialization

反序列化漏洞Insecure deserialization 什么是序列化?序列化与反序列化什么是不安全的反序列化?不安全的反序列化漏洞是如何产生的?不安全的反序列化有什么影响?识别不安全的反序列化漏洞PHP序列化格式Java序列化格式 利用不安全的…...

【轨物推荐】康波、世界体系与创新范式:中国如何引爆新一轮产业革命

原创 邵宇、陈达飞 新财富 2019年12月31日 22:13 中美关系近两年备受关注,在诸多方面各方都已经形成了共识,但竞争博弈的结局富有争议性。当靠事物太近的时候,反而很难看清楚其面貌,使用康德拉季耶夫周期(简称“康波”…...

[HCTF 2018]admin1

打开题目 尝试登陆 admin,123,直接试出来了 有投机取巧的成分,到github查看源码,也能找到用户名密码...

【Qwen-Audio部署实战】Qwen-Audio-Chat模型之对话机器人部署测试

系列篇章💥 No.文章1【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用4【Q…...

第一百八十五节 Java XML教程 - Java DOM简介

Java XML教程 - Java DOM简介 DOM是标准的树结构,其中每个节点包含来自XML结构的一个组件。 XML文档中两种最常见的节点类型是元素节点和文本节点。 使用Java DOM API,我们可以创建节点,删除节点,更改其内容,并遍历节…...

一款功能强大且免费的图片查看和管理工具

XnView MP是一款功能强大且免费的图片查看和管理工具,支持多种平台(Windows、Mac和Linux),并基于相同的源代码实现统一的用户界面和体验。它不仅能够查看各种图片格式,还提供了丰富的编辑和管理功能。 图片查看与浏览…...

动手学强化学习 第 11 章 TRPO 算法(TRPOContinuous) 训练代码

基于 Hands-on-RL/第11章-TRPO算法.ipynb at main boyu-ai/Hands-on-RL GitHub 理论 TRPO 算法 修改了警告和报错 运行环境 Debian GNU/Linux 12 Python 3.9.19 torch 2.0.1 gym 0.26.2 运行代码 TRPOContinuous.py #!/usr/bin/env pythonimport torch import numpy a…...

数量关系模块

三年后指的不是现在 选A注意单位 注意单位换算 A 正方形减去扇形 256-X5y 那么小李拿的一定是末尾是1或者是6,所以小李拿的是26,那么y46,那么小王或者小周拿的是92,所以选择三个数之和等于92的,所以选择D 分数 百分数 …...

滑模面、趋近律设计过程详解(滑模控制)

目录 1. 确定系统的状态变量和目标2. 定义滑模面3. 选择滑模面的参数4. 设计控制律5. 验证滑模面设计6. 总结 设计滑模面(Sliding Surface)是滑模控制(Sliding Mode Control,SMC)中的关键步骤。滑模控制是一种鲁棒控制…...

SQL Server 端口配置

目录 默认端口 更改端口 示例:更改 TCP 端口 示例:验证端口设置 远程连接测试 示例:使用 telnet 测试连接 配置防火墙 示例:Windows 防火墙设置 远程连接测试 示例:使用 telnet 测试连接 默认端口 TCP/IP: …...

同一窗口还是新窗口打开链接更利于SEO优化

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...

kafka 安装

docker安装kafka(KRaft 模式) KRaft模式不再对Zookeeper依赖。 docker run -d --name kafka-kraft \-p 9092:9092 -p 9093:9093 \-e KAFKA_PROCESS_ROLESbroker,controller \-e KAFKA_NODE_ID1 \-e KAFKA_CONTROLLER_QUORUM_VOTERS1127.0.0.1:9093 \-e KAFKA_LISTENERSPLAINTEX…...

消息队列中间件 - Kafka:高效数据流处理的引擎

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有疑问和建议,请私信或评论留言! 前言 在现代大数据和…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...