Kafka吞吐量

news2024/11/14 3:35:37

目录

kafka的架构和流程

小文件对HDFS影响:

解决办法:


kafka的架构和流程

⾸先Kafka从架构上说分为⽣产者Broker和消费者,每⼀块都进⾏了单独的优化,⽐如⽣产者快是因为数据的批量发送,Broker快是因为分区,分区解决了并发度的问题,⽽且⽂件是采取的顺序写的形式。顺序写就可以有效的减少磁盘寻址的时间其次它还采⽤了分段的概念,就是所谓的Segment,每⼀个Segment⼜包含⼀个索引⽂件和⼀个数据⽂件,通过这样的机制就保证写⼊速度是⾮常的快的。

还有⼀个就是最重要的零拷⻉技术的应⽤,零拷⻉其实是OS层⾯的⼀个技术,就是操作系统的PageCache利⽤这个操作系统的缓存⻚在加上调⽤操作系统的SendFile函数实现了对数据的处理提⾼了性能,所以采⽤零拷⻉技术之后就直接把进程之间的流拷⻉直接省略了,使⽤操作系统的Buffer从⽽⼤幅的提升了性能,因为数据传输的过程中省了⼀层,其实零拷⻉也是⽐较复杂的

因为Kafka的性能⽐较⾼所以当时我们数仓系统中,先通过Flume采集数据然后通过KafkaChannel放⼊Kafka中,下游使⽤Flume来做为消费者消费Kafka数据并存⼊HDFS中。

小文件对HDFS影响:

在Flume做消费者往HDFS上传输数据的时候遇到了很多问题,其中最重要的问题就是⼩⽂件的问题。因为它会从两个⽅⾯影响HDFS。1、针对NameNode来说,⾸先它会占⽤⼤量的存储空间,影响NameNode的存储性能,2、针对于MR来说,它会影响计算的性能,因为每⼀个⼩⽂件都会单独的⽣成⼀个Map任务,⼩⽂件过多就会导致MapTask任务过多从⽽影响计算的性能。

当时我们团队研究了一下,最后解决了这个问题,我们通过配置Flume的HDFS Sink来解决的:

首先Flume默认是根据event的数量来生成文件的,也就是说有多少个event就会有多少个文件,这样就会产生大量的小文件,每个event的数据大小是不一样的(有的大,有的小)

其次,我们通过查询官网上的解决办法最终找到了几个参数:

解决办法:

       1、rollInterval:这个参数是配置HDFSSink按照时间来滚动生成一个一个的文件,通过配置这个参数可以解决一段时间内生产的数据,但是有一个问题当时我们设置的是一个小时滚动生成一个文件,通常情况下都是符合预期的但是业务高峰期的时候只配置一个维度就不行了,所以我们还需要结合其他维度的配置才行。

        2、rollSize:这个参数是配置HDFS Sink按照文件大小来进行滚动生成文件的,我们当时设置的是128M,因为设置128M这个大小主要是对应了HDFS上边的快大小来设置的。HDFS上边每一个数据块的大小128M,所以这样设置是符合HDFS的存储习惯的,后期进行切片处理的时候操作也比较方便的。

        3、rollCount:对于这个参数我们当时设置的0,因为HDFSSInk默认是根据event个数来生成文件的,设置为0的意思就是禁用掉的逻辑,是Flume不能按照event个数据来生成文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440014.html

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

相关文章

媒体宣传的优势与重要性

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传日益成为企业和品牌宣传推广的重要手段,媒体的宣传报道更有权威性,能够帮助品牌进行背书,更有权威性,另外媒体的报道在搜索引擎中…

基于GPS/北斗卫星技术的无盲区车辆调度系统

基于GPS/北斗卫星技术的无盲区车辆调度系统 现代车辆调度系统是一种集全球卫星定位技术(GPS)、地理信息技术(GIS)和现代通信技术于一体的高科技项目。它将移动目标的动态位置(经度与纬度)、时间和状态等信息…

linux环境搭建jmeter、ant、git、Jenkins、jdk、Tomcat

我在搭建环境时,将jmeter、ant、jdk、Tomcat都放在陆opt文件夹下 1.下载jmeter、ant、Jenkins(Jenkins.war包)、jdk、Tomcat Linux环境下安装Jenkins,需要jdk版本大于11 2.环境配置 jdk配置 vim /etc/profile 添加配置信息&am…

飞书接入ChatGPT - 将ChatGPT集成到飞书机器人,直接拉满效率 【飞书ChatGPT机器人】

文章目录 前言环境列表视频教程1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使…

LBS找外贸客户 外贸怎么找客户

随着全球贸易的不断发展,越来越多的企业开始寻找更多的客户和销售机会。而随着移动互联网的普及,LBS已经成为了人们生活和工作中不可或缺的一部分。在商业领域中,LBS被广泛应用于定位、导航、营销等方面,为企业提供了更加便捷、精…

如何在Mac VM Fusion上安装和使用Plan 9

我在 Mac 上使用 VM Fusion 安装 Plan 9 的时候遇到了很多问题,官方文档和有些前两年的国外的一些博客并没有写清楚,甚至出现了“误导”的情况(有些情况变了)。所以来写本文帮助其他也遇到的问题的人。 如果你能看到这篇博客&…

上传ChatGPT相关资源,瓜分¥5000元奖金池

一、活动时间 资源类型时间上传地址上传【ChatGPT的原理分析】资源4月17日-4月30日https://upload.csdn.net/creation/uploadResources?taskId643925fde212675bb64a3984&utm_sourceblog上传【Chatgpt的多种使用方法】资源4月15日-4月30日https://upload.csdn.net/creatio…

介绍NPOI 的颜色卡、名称以及索引

文章目录 前言 遍历NPOI颜色 前言 使用NPOI的颜色时,一些颜色类的名称很难想象出具体对应的颜色,所以有了下面的对照表,方便使用。 NPOI 颜色的索引范围是 8~64,超出范围无效。 色彩类名索引Index名称#000000HSSFColor.Black8黑色#ffffffH…

【C++ 一】C++ 入门、数据类型、运算符

C 入门、数据类型、运算符 文章目录 C 入门、数据类型、运算符前言1 C 初识1.1 第一个C程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序 1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则 2 数据类型2.1 整型2.2 sizeof 关键字2.3 实型(浮点型…

【最详细最完整】windows 安装 Oracle Java环境

windows 安装Oracle Java环境 一、安装教程二、验证Java环境 前言:公司有个app的项目,我是打算使用uniapp来实现,那么调试是需要使用到java环境,所以我本地就得安装java环境,接着我找了好多文章发现没有相对完整的&…

在头部大厂做了13年云计算后,这次他想系统地聊聊FinOps!

随着企业上云战略的深入普及,越来越多的企业开始关注云成本优化。伴随着企业对IT资源的投入不断增加,企业迫切需要解决成本与效率,以及如何将云成本优化落到实处的问题。 FinOps是将财务和业务整合到一起的变革,可以帮助企业更好…

抖音数字人主播app

抖音数字人主播app是指一款利用计算机生成的虚拟数字人,在抖音平台上进行实时音视频传输和互动的应用程序。该软件可以让用户创建自己的虚拟数字人,并在抖音平台上进行实时互动和交流。 抖音数字人主播app通常需要包含以下功能: 3D建…

本地JAR打镜像,并启动

1.准备好jar,和Dokerfile文件。 2.使用命令打镜像 docker build -t wstest . 3. 查看镜像 4. 由于服务是两个端口。使用以下命令 5.优化怎么随着docker的开启而启动 docker run --restartalways -p 8089:8089 -p 8069:8069 wsserver docker run --restartalways -…

C++基础入门——语法详解篇(下)

文章目录 一、缺省参数 1、1 缺省参数的概念 1、2 缺省参数的分类 1、2、1 全部缺省 1、2、2 半缺省参数 二、引用 2、1 引用的概念 2、2 引用特征 2、3 引用的使用场景 2、3、1 引用做参数 2、3、2 常引用 2、3、3 引用做返回值 2、4 引用总结 三、内联函数 3、1 内联函数的引…

谷歌浏览器的跨域设置、配置、新老版本Chrome

文章目录 1、个人开发中的使用习惯2、老版本Chrome浏览器(版本号49之前)3、新版本Chrome浏览器(版本号49之后) 1、个人开发中的使用习惯 下载好谷歌浏览器以后,快捷方式一份放在桌面上,一份放在开始菜单栏,桌面的重命名为dev(可以随意命名)&a…

【09 cookie and session】

cookie and session 一、cookie1. 会话技术2. 什么是cookie3. cookie的属性4. cookie方法5. cookie添加和获取6. 需求案例7. cookie的细节 二、session1. HttpSession介绍2. HttpSession常用方法3. HttpSession获取4. HttpSession使用5. HttpSession使用细节 一、cookie cooki…

【MongoDB】什么是MongoDB?MongoDB有什么特点?MongoDB的适用场景?

什么是MongoDB数据库? MongoDB是一个开源、高性能、支持海里数据存储的文档型数据库。 MongoDB是一个高效的非关系型数据库(不支持表关系:只能操作单表) MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系…

postman安装

目录 下载、安装 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 Postman原是Chrome浏览器的插件,可以模拟浏览器向后端服务器发起任何形式(如:get、post)的HTTP请求 使用Postman还可以在发起请求时,携带一些请求参数、请求头等信息…

debezium docker订阅oracle 11g

debezium 依赖于kafka,kafka依赖于zookeeper。 zookeeper实现了kafka消息的一致性,debezium 把订阅的数据推送到kafka dockerFile FROM debezium/connect:1.6 ENV KAFKA_CONNECT_JDBC_DIR$KAFKA_CONNECT_PLUGINS_DIR/kafka-connect-jdbc ENV INSTANT_C…

登陆拼多多获取整站实时商品详情数据,商品列表,商品优惠券,包括数据采集,清洗,分析,封装等过程,作为爬虫的课程。

前言 拼多多平台是一个众所周知的一个电商平台,基本上什么都能找到,而且价格比较优惠。 想业余做电商赚点小钱或买点东西,就需要对比平台上各个卖家的商品信息,所谓货比三家,为商品定一个合理的价位或淘一个合理&…