大数据高级阶段面试题(实时)

1.Kafka的producer如何实现幂等性?

①开启幂等性,将Idempotent设置为true

②将ack设置为-1,确保相同的消息只会发送一次,避免重新发送

2.Kafka的ISR和OSR的作⽤分别是什么?

ISR是副本和领导者的数据和状态要保持一致,如果出现网络波动导致领导者宕机了,ISR会选择一个副本成为新的领导者,保证数据的高可用。

OSR是指副本和领导者的数据和状态可能因为网络波动导致没有保持一致,OSR需要追上领导者的数据

3.Kafka⽣产者如何实现幂等性写⼊和事务?

幂等性:

①开启幂等性,将Idempotent设置为true

②将ack设置为-1,确保相同的消息只会发送一次,避免重新发送

事务:Kafka开启事务,必须要先开启幂等性

①生产者使用事务之前,必须先自定义一个事务id,kafka根据事务id分配事务协调器

②事务协调器会返回一个pid

③生产者开始发送数据到topic,不过这些数据和之前的数据不同,他们都带着一个字段,表示自己是事务信息

④当生产者消息发送完毕,会向事务协调器发送commit请求或者是abort请求

⑤事务协调器收到请求后会持久化transcation_state中,transcation_state默认有50个分区,每个分区负责一部分事务

⑥事务协调器后台会跟topic通信,告诉他们事务是成功了还是失败了

4.Kafka消费者位置提交⽅式有哪些?分别什么场景下使⽤?

1.自动提交:

消费者定期将偏移量提交到kafka,提交的频率由消费者配置的参数控制,适用于一些对数据一致性要求不高的场景,但可能导致消息被重复处理或者是丢失

2.手动同步提交:

消费者在消费完一批数据之后,调用commitSync方法来提交偏移量,这种方式可以确保消息的一次性处理,适用于对数据一致性要求较高的场景,但可能会影响消费者的吞吐量

3.手动异步提交:

消费者在消费完一批数据之后,调用commitAsync方法异步提交偏移量,异步提交不会阻塞消费者的处理线程,从而提高吞吐量,但是异步提交可能会导致消息的重复处理或者是丢失,需要消费者设置适当的异常处理和重试机制。

5.Kafka消息丢失场景有哪些?如何避免?

①生产者发送消息失败:

生产者发送消息时发生错误,并且没有设置重试机制,就有可能导致数据丢失,这个时候我们可以设置合适的重试次数以及重试间隔

②消息在网络传输过程中丢失:

生产者发送消息到kafka的过程中,可能会遇到网络波动或者是配置不当导致数据丢失,这时候我们可以设置重试机制和调整网络配置来提高稳定性

③消费者处理消息失败:

消费者在消费数据时发生错误,并且没有设置适当的错误处理和重试机制,那么消息就有可能丢失,需要我们设置重试机制来确保消息能够被正确处理并且不会丢失。

6.Kafka消费组重新平衡流程

每个消费者启动之后都会自动加入所属的消费者组中,并且向协调器发送心跳表示是运行状态

当消费者启动之后,首先向协调器发送加入组的请求,如果消费者组中已经存在了这个消费者,协调器就返回成功,否则协调器会将其加到消费者队列中,并通知其他消费者进行重平衡

新的消费者加入之后,协调器会按照订阅的主题计算出当前消费者负责消费的分区,并将分配结果发送给消费者,消费者在接收到分配结果之后,可以根据分区信息消费对应的消息

7.Kafka消费者分区分配策略

Range(范围分区):

首先我们会对每个topic下的partition进行排序,然后对消费者按照字母进行排序,然后用分区数除以消费者数量。例子:假如现在我们有十个分区,三个消费者,那么就是10除以3,如果除不尽,那么前面的消费者就会多消费一个分区。

弊端就是前面的消费者会比后面的消费者多处理几个分区的数据,会出现负载均衡的现象

RoundRoBin(轮询分区):

将消费者和分区按照字典序进行排序,然后通过轮询的方法将分区逐个分配给每个消费者,但是也可能会出现负载不均衡的情况

StickyAssignor(粘性分区):

分区的分配要尽可能的均匀,消费者之间的分区数最多相差一个

分区的分配尽可能要与上次分配的保持相同

8.ClickHouse中ReplicatedMergeTree是什么?有什么优点?

ReplicatedMergeTree是一种数据表引擎,用于处理分布式环境下的数据复制和合并,是MergeTree表引擎的一个扩展,用于在分布式环境中实现数据的可靠复制和合并

优点

①:ReplicatedMergeTree表支持数据的复制和分布式存储,可以在多个节点上存储数据的副本,并且可以跨多个节点分布数据以实现负载均衡

②:ReplicatedMergeTree表可以合并来自不同节点的数据,保证数据的一致性和完整性

③:由于ReplicatedMergeTree支持数据复制,因此具有良好的容错性和高可用性,即使某个节点发生故障,仍然可以从其他节点获取数据

缺点:

性能消耗:由于ReplicatedMergeTree需要进行数据复制和合并,可能会导致额外的性能消耗,在处理大规模数据的时候,可能会成为性能瓶颈

一致性和延迟:由于数据复制和合并需要一定的时间,因此在分布式环境中可能存在一致性和延迟问题,在某些情况下,可能需要额外的措施来确保数据的一致性和实时性

9.ClickHouse的分布式查询流程是什么样的?

10.ClickHouse存储结构及优势

优势

列式存储:

ClickHouse采用列式存储结构,数据按列存储,而不是将整行数据存储在一起,这种存储方式有助于提高查询性能,在数据规模大的情况下,可以减少磁盘io和内存消耗。

数据分区:

ClickHouse支持对数据进行分区,可以根据时间范围或其他维度将数据划分为不同的分区,这种分区存储结构有助于提高查询性能,可以根据查询需求只加载特定分区的数据,减少不必要的数据扫描。

11.ClickHouse各种索引的区别和使⽤场景

一级索引:

一级索引是表的主键索引,主键索引是表中一列或多列的唯一标识,用于快速定位每一行数据,一级索引在ClickHouse中是必须的,每张表必须有一个一级索引

稀疏索引:

索引标记对应的是一段数据, 但是查询速度可能会受影响,因为某些数据无法直接通过索引定位到,从而需要进行更多的磁盘访问

稠密索引:

索引标记对应到一行具体的数据记录,查询速度快,每行数据都能通过索引快速定位到,但是会占用更多的存储空间

二级索引:

二级索引是指除了主键索引之外的其他索引,用于加速查询非主键列

12.ClickHouse查询性能优化

索引优化:

使用适当的索引类型,根据查询模式创建合适的索引

数据分区:

利用ClickHouse的分区功能,将数据按照时间范围或其他维度进行分区存储,这样可以降低单个分区的数据量,提高查询性能,同时也便于数据的维护和管理

硬件优化:

提供足够的硬件资源,升级配置

数据压缩:

使用合适的压缩算法来减少存储空间,同时也能提高读取速度,ClickHouse提供了多种压缩算法,可以根据数据的特点选择合适的压缩方式

13.Flink窗口机制有哪些?应⽤场景分别是什么?

滑动窗口:

滑动窗口在固定大小的窗口上定义了一个滑动步长,窗口之间可以有重叠部分,常用于连续的数据流分析

滚动窗口:

滚动窗口将数据按照固定的大小进行划分,窗口之间没有重叠,常用于对实时数据进行周期性的统计分析,如每分钟,每小时。

会话窗口:

当数据流中一段时间内没有数据到达时,会话窗口结束,会话窗口需要制定两个参数,会话超时时间和间隔时间,当某个数据到达时,会话窗口会检查该数据与前一个数据的时间间隔,如果超过了会话超时时间,则结束前一个会话窗口并开始一个新的会话窗口

全局窗口:

全局窗口将整个数据流视为一个窗口,通常用于一次性对整个数据流进行统计分析

处理时间窗口:

根据数据的处理时间来划分窗口,即数据到达flink算子的时间,适用于对实时数据进行快速分析,不考虑事件时间顺序的场景

事件时间窗口:

根据数据中的事件时间来划分窗口,即数据中的时间戳,用于处理具有时间顺序的数据流,可以解决数据延迟,乱序等问题

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

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

相关文章

游泳耳机哪个牌子好性价比高?这四款热榜游泳耳机必须要看!

随着生活品质的提升和健康意识的增强,游泳已成为许多人日常锻炼的首选。在享受水中畅游的同时,音乐成为了许多游泳爱好者的最佳伴侣。游泳耳机,作为一种专为水下运动设计的音频设备,近年来逐渐受到市场的青睐。然而,面…

新华三VRRP配置

新华三VRRP配置 配置步骤 (1).基础配置: CORE1: [CORE1]vlan 10 //创建vlan10 [CORE1-vlan10]int vlan 10 //进入vlanif 10 [CORE1-Vlan-interface10]ip add 192.168.10.1 24 //配置ip [CORE1-Vlan-interface10]int g1/0/2 //进入接口 [C…

【OCPP】ocpp1.6协议第3.11章节Reservations和第3.12章节Vendor-specific data transfer-介绍及翻译

目录 3.11章节Reservations 概述 3.11章节Reservations 译文 3.12章节Vendor-specific data transfer 概述 3.12章节Vendor-specific data transfer 译文 3.11章节Reservations 概述 OCPP1.6协议中的3.11章节关于“Reservations”主要对充电桩预定过程进行了定义和规定。 基…

一文了解CRM系统帮助中心:从认识到搭建

客户关系管理(CRM)系统是企业的一个重要部分。而CRM系统帮助中心为用户提供了便捷的支持服务,提升了用户体验,减少了企业运营成本。本文将从认识到搭建,带你全面了解CRM系统帮助中心。 一、认识CRM系统帮助中心 CRM系统…

品鉴中的艺术表达:如何将红酒与绘画、雕塑等艺术形式相结合

品鉴雷盛红酒不仅是一种味觉的享受,更是一种艺术的体验。将雷盛红酒与绘画、雕塑等艺术形式相结合,能够创造出与众不同的审美体验,进一步丰富品鉴的内涵。 首先,绘画作为视觉艺术的一种表现形式,能够通过色彩和构图来传…

Python爬虫实战:爬取小红书去水印图片

1. 思路分析 首先,在小红书 APP 中点击分享,获取到它的链接分享,如:www.xiaohongshu.com/discovery/i… 然后把它在浏览器中(我用的是 chrome 浏览器)打开。 按 F12 或者 Ctrl shift i 打开 开发者工具…

SG-8018CE晶体振荡器可编程规格书

SG-8018CE系列晶体振荡器是一个高性能、多功能且具有高度集成性的解决方案,它满足了现代电子系统的严格要求。其广泛的频率范围0.67 MHz到170 MHz,且频率调节精度达到1ppm,1.62 V至3.63V的宽广电源电压,使能(OE&#x…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

小程序预览或上传代码时,遇到app.json未找到某个wxml文件的解决方法

uniapp小程序,点击预览或者是上传代码,遇到app.json无法找到某个wxml文件的解决方法:清缓存 问题: message:Error: app.json: 未找到 ["subPackages"][3]["pages"][3] 对应的 subPackages4/pages/…

Rust 解决循环引用

导航 循环引用一、现象二、解决 循环引用 循环引用出现的一个场景就是你指向我,我指向你,导致程序崩溃 解决方式可以通过弱指针,而Rust中的弱指针就是Weak 在Rc中,可以实现,对一个变量,持有多个不可变引…

仓库管理员如何入门?仓库管理六大步骤教会你!

新手菜鸟入行,如何做好一个仓库管理员?仓库运营对于许多行业至关重要,例如制造、零售和物流。它们涉及高效、安全地接收、仓储、拣选、包装和运输货物。 跟着这6个步骤做,最慢一个月,最快一周,就能轻松做好…

高效项目管理:如何利用zz-plan在线甘特图工具

作为项目管理人员,使用 zz-plan https://zz-plan.com/这样的在线甘特图协作软件可以极大地提高项目管理的效率和效果。以下是结合zz-plan特点的一些关键步骤: 1. 制定项目计划 在zz-plan上创建新的项目,定义项目目标、关键里程碑和最终期限。…

ABB RobotStudio学习记录(一)新建工作站

RobotStudio新建工作站 最近遇到 虚拟示教器和 Rapid 代码不能控制 视图中机械臂的问题,其实是由于机械臂和工作站不匹配。以下是解决方法。 名称版本Robot Studio6.08 新建一个”空工作站“; 在目标位置新建一个目标文件夹 C:\solution\test&#xff0…

若依ruoyi-vue前端异常处理

/utils/request.js 文件是基于 axios 的封装,用于统一处理请求参数、请求头、错误提示信息等。这些功能的封装使得在 Ruoyi Vue 中进行 HTTP 请求时可以更加方便和统一,同时也提高了代码的可维护性和可扩展性。下面是对这些功能的具体描述: …

数据挖掘实战-基于深度学习RNN+CNN的能源价格预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

深入理解 LinkedList 及底层源码分析

LinkedList 是基于链表结构的一种 List,在分析 LinkedList 源码前我们先对对链表结构做一个简单的了解。 一、链表的概念 链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为_单向链表和双向链表,而单向 / 双…

layui 数据表格 拖动 列、行 位置 重新排序 等

先贴官网 layui官网 ; 再贴一个要使用的 插件官网 : layui-soul-table 示例文档 ; 这个插件功能很多 看到那个下载 后悔没早点知道啊 还自己写了 一个下载 可以到官网看看 很多实用的 需要引入的 js layui.config({base: rootPath…

CANape中,Event list和DAQ list的区别介绍

1 基本介绍 在 Vector 的 CANape 中,事件列表 (Event list) 和 DAQ 列表 (DAQ list) 都用于定义和管理数据采集 (DAQ) 事件。但是,它们在目的和功能上有所不同。 事件列表 用于定义触发数据采集的事件。事件列表中的每个事件都与一组信号和触发条件相关联。当满足触发条件时…

检测服务器环境,实现快速部署。适用于CRMEB_PRO/多店

运行效果如图: 最近被好多人问,本来运行的好好的,突然swoole就启动不了了。 本工具为爱发电,如果工具正好解决了您的需求。我会很开心 代码如下: """本脚本为爱发电by:网前雨刮器 """…

如何翻译外文文献【攻略】

如何翻译外文文献【攻略】 前言版权推荐如何翻译外文文献简单描述第一步 准备一篇外文文献第二步 翻译网站第三步 解锁文档第四步 编辑dpf第五步 pdf转为word第六步 编辑word第七步 word转为pdf 最后 前言 2024-5-7 14:50:14 以下内容源自《【攻略】》 仅供学习交流使用 版权…