基于飞腾平台的Kafka移植与安装
【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧
本文分享至飞腾开发者平台《飞腾平台Kafka_v3.0.0移植安装手册》
1 介绍
Kafka是一款开源的、轻量级的、分布式的、可分区和具有复制备份的(Replicated)、基于ZooKeeper协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比,Kafka能够很好地处理活跃的流数据,使得数据在各个子系统中高性能、低延迟地不停流转,kafka由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。主要处理大数据中的实时流式数据处理场景。
2 环境要求
2.1 硬件要求
硬件要求如下表所示。
| 项目 | 说明 |
|---|---|
| CPU | FT-2000+/64服务器 |
| 网络 | 无要求 |
| 存储 | 无要求 |
| 内存 | 无要求 |
2.2 操作系统要求
操作系统要求如下表所示。
| 项目 | 说明 |
|---|---|
| CentOS | 8 |
| Kernel | 4.18.0-193.el8.aarch64 |
2.3 软件环境要求
软件环境要求如下表所示。
| 项目 | 说明 |
|---|---|
| JDK | 1.8.0_281 |
3 安装步骤
3.1 下载Kafka压缩包
1. 前往官网下载Kafka安装包:https://kafka.apache.org/downloads
注*:在官网下载Kafka安装包时,要选择编译好的,可以直接使用的压缩包,如下图所示:
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改小。如下图所示
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:(下图分别对应第一条与第二条代码的返回信息)
可见2076182就是占用2181端口进程,之后使用如下代码将进程结束问题就解决了。
>> kill -9 2076182
3)java.io.IOException: No snapshot found, but there are log entries
网上大部分论坛(如CSDN,博客园)对此错误的解释是在启动zookeeper时恢复数据的报错,但是对于刚刚下载并配置的人来说,可以简单的理解为在此服务器上存在另一个版本的zookeeper,两个zookeeper都在同一默认目录下储存数据,导致这个错误。解决这个问题的方法就是修改zookeeper.properties文件中的dataDir,如下图所示:
3.2.2 查看Zookeeper是否启动成功
普遍使用的检查Zookeeper是否启动的代码如下:
>>ps -aux | grep ’zookeeper’
或
>>ps -elf | grep zookeeper
但是,无论Zookeeper是否启动,上述代码均有返回信息,区别在于,如果Zookeeper启动成功,会返回一大串Zookeeper的相关路径,如下图所示:
并且,为了保险起见,再次查看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
broker.id很重要,但是一般不需要更改(基本都是从0开始)。
2)listeners
listeners是监听地址,按照文本提供的格式填写主机地址就可以,如上图所示。在初始配置文档中,listeners是被注释掉的,而网上大部分教程中的listeners并没有被注释掉,在之后启动3.0.0版本的Kafka时,未注释掉listeners会导致Kafka启动失败(原因暂时未知),所以在此建议先将监听地址注释掉,了解它的作用即可。
3)num.partitions
num.partitions是新建Topic的默认Partition数量,虽然Partition数量提升,一定程度上可以提升并发性,但是为了尽可能的在第一次配置Kafka时减少报错,先将其设置为1。
4)log.dirs
log.dirs是日志目录,需要根据自己的情况设置。需要注意的是,最好单独建立并命名一个文件夹用来保存日志,因为若日志目录下还保存有别的文件,在启动Kafka时会出现报错。
5)启动Kafka
>>kafka-server-start.sh -daemon config/server.properties
3.3.2 查看Kafka是否启动成功
-daemon参数会将任务转入后台运行,输出日志信息将写入日志文件,日志文件在执行命令的目录下的logs目录中kafkaServer.out,结尾输同started说明启动成功。如下图所示:
也可以使用jps命令,查看是否有Kafka进程:
>>jps
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
4)发送消息
>>kafka-console-producer.sh --broker-list 172.16.32.201:9092 --topic test
5)接收消息
>>kafka-console-consumer.sh --bootstrap-server 172.16.32.201:9092 --topic test
--from-beginning
6)查看特定主题的详细信息
>>kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test
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 觉得博主文章不错的话,可以三连支持一下~ 如有疑问和建议,请私信或评论留言! 前言 在现代大数据和…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
