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

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

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算子的时间,适用于对实时数据进行快速分析,不考虑事件时间顺序的场景

事件时间窗口:

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

相关文章:

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

1.Kafka的producer如何实现幂等性? ①开启幂等性,将Idempotent设置为true ②将ack设置为-1,确保相同的消息只会发送一次,避免重新发送 2.Kafka的ISR和OSR的作⽤分别是什么? ISR是副本和领导者的数据和状态要保持一致,如果出现…...

Material Studio 计算分子静电力、电荷密度以及差分电荷密度

1.先打开Material Studio导入要计算的分子cif文件或者mol文件,直接Flie-Import 2.高斯几何优化一下结构,参数按照我的设置就行,一般通用,后面出问题再调整 3.点完Run后会跳出很多计算过程,不用管,等他计算完…...

华为鸿蒙系统(Huawei HarmonyOS)

华为鸿蒙系统(华为技术有限公司开发的分布式操作系统) 华为鸿蒙系统(HUAWEI HarmonyOS),是华为公司在2019年8月9日于东莞举行的华为开发者大会(HDC.2019)上正式发布的分布式操作系统。 华为鸿蒙…...

docker jenkins 部署springboot项目

1、创建jenkins容器 1,首先,我们需要创建一个 Jenkins 数据卷,用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷: docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷: docker run -dit…...

记录一个练手的js逆向password

很明显 请求加密了password 全局搜索 有个加密函数(搜不到的可以搜临近的其他的关键字 或者url参数) 搜索的时候一定要仔细分析 我就没有仔细分析 我搞了好久 又是xhr又是hook的(还没hook到) 我当时也是疏忽了 我寻思这个也不是js文件 直到后来 我怎么也找不到 我就猜想 不…...

如何低成本创建个人网站?

目录 前言 网站源代码 虚拟主机或服务器 域名注册或免费二级域名 域名解析 上传源代码压缩包 添加刚刚的域名 成功搭建 失败的解决方案 结语 前言 很多小白都非常想拥有自己的网站,但很多人虽然有了自己的源代码但苦于不知道怎么将其变成所有人都能够访…...

Finder Windows for Mac:双系统窗口,一键切换!

Finder Windows for Mac是一款专为Mac用户设计的实用工具,它模拟了Windows系统的窗口管理功能,让Mac用户也能享受到类似Windows的窗口操作体验。这款软件的主要功能是提供一个浮动面板,帮助用户随时即时访问打开的Finder窗口列表,…...

Hadoop3:集群搭建及常用命令与shell脚本整理(入门篇,从零开始搭建)

一、集群环境说明 1、用VMware安装3台Centos7.9虚拟机 2、虚拟机配置:2C,2G内存,50G存储 3、集群架构设计 从表格中,可以看出,Hadoop集群,主要有2个模块服务,一个是HDFS服务,一个是…...

yolo-world:”目标检测届大模型“

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…...

vue3 + ts 快速入门(全)

文章目录 学习链接1. Vue3简介1.1. 性能的提升1.2.源码的升级1.3. 拥抱TypeScript1.4. 新的特性 2. 创建Vue3工程2.1. 基于 vue-cli 创建2.2. 基于 vite 创建(推荐)vite介绍创建步骤项目结构安装插件项目结构总结 2.3. 一个简单的效果Person.vueApp.vue …...

vue2实现面包屑功能

目录 1. store/index.js 2. router/index.js 3. Header.vue 在Vue 2中实现面包屑导航是一种常见的前端实践,它可以帮助用户了解当前页面在网站结构中的位置,并快速导航到上一级或根目录。以下是使用Vue 2实现面包屑导航的基本步骤: 1. st…...

helm安装 AWS Load Balancer Controller

1、创建AmazonEKSLoadBalancerControllerRole角色 亚马逊文档 创建文档 2)、使用 eksctl 创建 IAM 角色 a、安装eksctl eksctl安装文档 使用以下命令下载并提取最新版本的 eksctl curl --silent --location "https://github.com/weaveworks/eksctl/releases/l…...

贪吃蛇大作战(C语言--实战项目)

朋友们!好久不见。经过一段时间的沉淀,我这篇文章来和大家分享贪吃蛇大作战这个游戏是怎么实现的。 (一).贪吃蛇背景了解及效果展示 首先相信贪吃蛇游戏绝对称的上是我们00后的童年,不仅是贪吃蛇还有俄罗斯⽅块&…...

谷歌确认:链接并不那么重要

谷歌的 Gary Illyes 在最近的一次搜索营销会议上证实,谷歌只需要很少的链接,这为出版商需要关注其他因素提供了越来越多的证据。Gary 在推特上证实了他确实说过这些话。 排名链接的背景 20 世纪 90 年代末,搜索引擎发现链接是验证网站权威性…...

python基础--修饰器

修饰器(语法糖) 在python中函数实际上就是一个对象 def outer(x):def inner(y):return x yreturn innerprint(outer(6)(5))def double(x):return x * 2 def triple(x):return x * 3def calc_number(func, x):print(func(x))calc_number(double, 3) calc_number(triple, 3)函…...

6. Z 字形变换

题目描述 给你一个字符串s和行数numRows,把s字符串按照z字形重新排列。 再从左往右进行读取,返回读取之后的字符串。 本题是找规律,但是没有找出来 解题思路 要想解出来该题,在进行z字变换的时候,我们把字符串的下…...

shell常用文件处理命令

1. 解压 1.1 tar 和 gz 文件 如果你有一个 .tar 文件,你可以使用以下命令来解压: tar -xvf your_file.tar在这个命令中,-x 表示解压缩,-v 表示详细输出(可选),-f 后面跟着要解压的文件名。 如果你的 .tar 文件同时被 gzip 压缩了(即 .tar.gz 文件),你可以使用以下…...

从Paint 3D入门glTF

Paint 3D Microsoft Paint 3D是微软的一款图像编辑软件,它是传统的Microsoft Paint程序的升级版。 这个新版本的Paint专注于三维设计和创作,使用户可以使用简单的工具创建和编辑三维模型。 Microsoft Paint 3D具有直观的界面和易于使用的工具&#xff0…...

数据库(MySQL)—— DQL语句(基本查询和条件查询)

数据库(MySQL)—— DQL语句(基本查询和条件查询) 什么是DQL语句基本查询查询多个字段字段设置别名去除重复记录 条件查询语法条件 我们今天进入MySQL的DQL语句的学习: 什么是DQL语句 MySQL中的DQL(Data Q…...

如何根据索引删除数组中的元素,并保证删除的正确性

使用 splice() 方法来删除这些索引处的数据 var array [1, 2, 3, 4, 5]; var indexesToDelete [1, 3]; // 需要删除的索引// 将需要删除的索引按照从大到小的顺序排序,以避免删除元素后索引发生变化 indexesToDelete.sort((a, b) > b - a);// 遍历需要删除的索…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

Selenium常用函数介绍

目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四&#xff…...

C++ 设计模式 《小明的奶茶加料风波》

👨‍🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...