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

2024年大数据高频面试题(中篇)

文章目录

  • Kafka
    • 为什么要用消息队列
    • 为什么选择了kafka
    • kafka的组件与作用(架构)
    • kafka为什么要分区
    • Kafka生产者分区策略
    • kafka的数据可靠性怎么保证
    • ack应答机制(可问:造成数据重复和丢失的相关问题)
    • 副本数据同步策略
    • ISR
    • kafka的副本机制
    • kafka的消费分区分配策略
      • Range分区分配策略
      • RoundRobinAssignor分区分配策略
      • StickyAssignor分区分配策略
    • kafka的offset怎么维护
    • kafka为什么这么快
    • Kafka消费能力不足怎么处理
    • kafka事务是怎么实现的
    • Kafka中的数据是有序的吗
    • Kafka可以按照时间消费数据吗
    • Kafka单条日志传输大小
    • Kafka参数优化
    • Kafka适合以下应用场景
    • Exactly Once语义
  • Zookerper
    • 特点
    • 选举机制
      • 新集群选举
    • 非全新集群选举
    • Kafka依赖Zookeeper的选举
    • Kafka依赖ZK做了哪些事
      • Kafka选举
      • Kafka为什么要放弃ZK
    • 基于ZooKeeper的Hadoop高可用
    • Yarn高可用
  • Flink
    • 运行时架构
    • Flink 应用
    • 处理数据API
    • 核心抽象
    • Flink 异步IO
    • 窗口
    • Watermark (水印)
    • 内存管理
    • 内存模型
    • 资源管理
    • 调度
    • 作业调度失败
    • 容错
    • 保存点恢复
    • 端到端严格一次
    • Flink SQL
    • FLINK API

Kafka

为什么要用消息队列

  1. 解耦
    允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
  2. 可恢复性
    系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理
    消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。
  3. 缓冲
    有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。
  4. 灵活性与峰值处理能力
    在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理
    这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的
    访问压力,而不会因为突发的超负荷的请求而完全崩溃。
  5. 异步通信
    很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入
    队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

为什么选择了kafka

在这里插入图片描述

  1. 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒。
  2. 可扩展性:kafka集群支持热扩展。
  3. 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。
  4. 容错性:允许集群中

相关文章:

2024年大数据高频面试题(中篇)

文章目录 Kafka为什么要用消息队列为什么选择了kafkakafka的组件与作用(架构)kafka为什么要分区Kafka生产者分区策略kafka的数据可靠性怎么保证ack应答机制(可问:造成数据重复和丢失的相关问题)副本数据同步策略ISRkafka的副本机制kafka的消费分区分配策略Range分区分配策略…...

Python编程工具PyCharm和Jupyter Notebook的使用差异

在编写Python程序时需要用到相应的编程工具,PyCharm和Jupyter Notebook是最常用2款软件。 PyCharm是很强大的综合编程软件,代码提示、代码自动补全、语法检验、文本彩色显示等对于新手来说实在太方便了,但在做数据分析时发现不太方便&#xf…...

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH) 1、配置分机 点击分机 -> 找到你需要设置的分机 ->呼叫路由设置为external,这里需要设置的分机是呼叫的并不是坐席的分机呼叫路由 2、配置拨号方案 点击拨号方案 -> 输入目的地绑定 …...

【数据集处理工具】根据COCO数据集的json标注文件实现训练与图像的文件划分

根据COCO数据集的json标注文件实现训练与图像的文件划分 一、适用场景:二、COCO数据集简介:三、场景细化:四、代码优势:五、代码 一、适用场景: 适用于一个常见的计算机视觉项目应用场景,特别是当涉及到使…...

vue 如何做一个动态的 BreadCrumb 组件,el-breadcrumb ElementUI

vue 如何做一个动态的 BreadCrumb 组件 el-breadcrumb ElementUI 一、ElementUI 中的 BreadCrumb 定义 elementUI 中的 Breadcrumb 组件是这样定义的 <template><el-breadcrumb separator"/"><el-breadcrumb-item :to"{ path: / }">主…...

FFmpeg播放视频

VS2017+FFmpeg6.2.r113110+SDL2.30.5 1.下载 ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC++控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令...

重叠区间的求和

#摘抄 GetGeneLength/src/GetGeneLength/GetGeneLength.py at main PoShine/GetGeneLength GitHub def main(): """ Extract gene length based on featureCount calculation gene nonredundant exon length method. """ # 引…...

java包装类 及其缓存

Java 包装类&#xff08;Wrapper Class&#xff09;是将基本数据类型转换为对象的方式&#xff0c;每个基本数据类型在 java.lang 包中都有一个相应的包装类&#xff1a; Boolean 对应基本类型 boolean Character 对应基本类型 char Integer 对应基本类型 int Float 对应基本…...

大龄程序员的出路在哪里?

对于许多资深程序员而言&#xff0c;年龄并非职业发展的桎梏&#xff0c;反而如同陈年的美酒&#xff0c;随着时间的流逝愈发醇厚。他们手握的是丰富的经验和不断进阶的技能&#xff0c;而这些都为他们打开了职业发展的无数扇大门。让我们一同探索这些令人心动的可能性吧&#…...

Unity不用脚本实现点击按钮让另外一个物体隐藏

1.首先在场景中创建一个按钮和一个其他随便什么东西 2.点击按钮中的这个加号 3.然后将刚刚你创建的物体拖到这里来 4.然后依次点击下面这些给按钮绑定事件 5.运行游戏并点击按钮&#xff0c;就会发现拖进来的物体消失了 总结&#xff1a;如果按钮的功能单一&#xff0c;可以使用…...

RAG技术-为自然语言处理注入新动力

引言&#xff1a; 在自然语言处理&#xff08;NLP&#xff09;的领域中&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术以其独特的方式&#xff0c;正在改变我们与机器的交互方式。RAG技术结合了大语言模型的强大能力&#xff0c;使得机器在理解和…...

Docker安装ELK(简易版)

1、下载ELK镜像&#xff1a;打开终端&#xff0c;并执行以下命令以下载Elasticsearch、Logstash和Kibana的Docker镜像。您也可以根据需要选择其他版本&#xff1a; docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.6 docker pull docker.elastic.co/logstash…...

WPF项目实战视频《一》(主要为WPF基础知识)

1.WPF布局&#xff1a; Grid&#xff0c;stackPanel&#xff0c;wrapPanel&#xff0c;DockPanel&#xff0c;UniformGrid Grid 按行列布局&#xff0c; Grid.ColumnDefinitions列&#xff0c;Grid.RowDefinitions行 Grid.Row“0” Grid.Column“0” stackPanel 默认从上往下排…...

iOS ------ ARC的工作原理

一&#xff0c;ARC的概念 ARC (Automatic Reference Counting&#xff0c;自动引用计数) 是苹果公司在其编程语言&#xff08;如 Objective-C 和 Swift&#xff09;中的内存管理机制。ARC 通过编译器插入的代码自动管理对象的内存生命周期&#xff0c;减少了手动内存管理的复杂…...

【React】JSX基础

一、简介 JSX是JavaScript XML的缩写&#xff0c;它是一种在JavaScript代码中编写类似HTML模板的结构的方法。JSX是React框架中构建用户界面&#xff08;UI&#xff09;的核心方式之一。 1.什么是JSX JSX允许开发者使用类似HTML的声明式模板来构建组件。它结合了HTML的直观性…...

1分钟带你了解苹果手机删除照片恢复全过程

在日常使用苹果手机时&#xff0c;我们可能会不小心删除掉一些重要的照片&#xff0c;这让人非常烦恼。那么苹果手机怎么恢复删除的照片&#xff1f;下面小编将会向大家介绍苹果手机恢复删除的照片的方法&#xff0c;帮助大家轻松找回你丢失的照片。 一、利用“最近删除”文件夹…...

Ruby爬虫技术:深度解析Zhihu网页结构

在互联网时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在社交媒体和问答平台如Zhihu&#xff08;知乎&#xff09;上&#xff0c;用户生成的内容蕴含着丰富的信息和洞察。本文将深入探讨如何使用Ruby爬虫技术来解析Zhihu的网页结构&#xff0c;并获取有价值的数据。 …...

python中的re模块--正则表达式

正则表达式&#xff0c;又称规则表达式。&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;计算机科 学的一个概念。正则表达式通常被用来检索、替换那些符合某个模 式(规则)的文本 re模块作用 通过使用…...

sqlalchemy反射视图

sqlalchemy反射视图 一个名为my_view的视图,使用SQLAlchemy来操作这个视图 from sqlalchemy import create_engine, MetaData# 创建数据库连接 engine = create_engine(数据库连接字符串)# 创建一个MetaData对象 metadata = MetaData()# 反射视图 metadata.reflect(bind=eng…...

最新版康泰克完整版- Kontakt v7.10.5 for Win和Mac,支持m芯片和intel,有入库工具

一。世界最受欢迎的采样器的新篇章 Native Instruments Kontakt是采样器领域的标准&#xff0c;您将获得高质量的滤波器&#xff0c;在这里您将找到经典的模拟电路和最现代的滤波器。每一个都可以根据您的口味进行定制&#xff0c;并且由于它&#xff0c;您可以获得前所未有的声…...

spring boot(学习笔记第十三课)

spring boot(学习笔记第十三课) 传统后端开发模式和前后端分离模式的不同&#xff0c;Spring Security的logout&#xff0c;invalidateHttpSession不好用&#xff0c;bug&#xff1f; 学习内容&#xff1a; 传统后端开发模式 vs 前后端分离模式Spring Security的logout功能inv…...

聊聊不再兼容安卓的鸿蒙

鸿蒙NExt已经确定不再兼容安卓系统&#xff0c;这意味着鸿蒙系统在更新迭代上将会展现出更加迅猛的速度。不过&#xff0c;这样的变化也给开发者们带来了不小的挑战。如今&#xff0c;鸿蒙的开发主要推荐使用的是ArkTS&#xff0c;而不是我们熟悉的Java SDK。对于大量习惯于使用…...

创建一个矩形,当鼠标进入这个矩形的时候,这个矩形边线变色,且鼠标变成手型

1.概要 创建一个矩形&#xff0c;当鼠标进入这个矩形的时候&#xff0c;这个矩形边线变色&#xff0c;且鼠标变成手型 2.代码 #include <QApplication> #include "customRectWidget.h" /** qt 6.7版&#xff0c; 创建一个矩形&#xff0c;当鼠标进入这个矩形…...

AI自动生成PPT哪个软件好?高效制作PPT优选这4个

7.15初伏的到来&#xff0c;也宣告三伏天的酷热正式拉开序幕~在这个传统的节气里&#xff0c;人们以各种方式避暑纳凉&#xff0c;享受夏日的悠闲时光。 而除了传统的避暑活动&#xff0c;我们还可以用一种新颖的方式记录和分享这份夏日的清凉——那就是通过PPT的方式将这一传…...

LruCache、Glide和SmartRefreshLayout使用总结

&#xff08;一&#xff09;Android智能下拉刷新框架-SmartRefreshLayout https://github.com/scwang90/SmartRefreshLayout?tabreadme-ov-file &#xff08;二&#xff09;LruCache使用 使用它可以进行图片的内存缓存 public class ImageLoaderUtil {private LruCache<St…...

Redis中数据分片与分片策略

概述 数据分片是一种将数据分割并存储在多个节点上的技术&#xff0c;可以有效提高系统的扩展性和性能。在Redis中&#xff0c;数据分片主要用于解决单个实例存储容量和性能瓶颈的问题。通过将数据分散存储到多个Redis节点中&#xff0c;可以将负载均衡到不同的服务器上&#…...

leetcode_169. 多数元素

leetcode_169. 多数元素 问题描述 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums …...

STM32 GPIO的工作原理

STM32的GPIO管脚有下面8种可能的配置:&#xff08;4输入 2 输出 2 复用输出) &#xff08;1&#xff09;浮空输入_IN_FLOATING 在上图上&#xff0c;阴影的部分处于不工作状态&#xff0c;尤其是下半部分的输出电路&#xff0c;实际上是与端口处于隔离状态。黄色的高亮部分显示…...

板级调试小助手(2)ZYNQ自定义IP核构建属于自己的DDS外设

一、前言 在上期文章中讲述了小助手的系统结构和原理。在PYNQ的框架开发中&#xff0c;我们一般可以将PL端当做PS端的一个外设&#xff0c;通过读写寄存器的方式来操作外设的功能&#xff0c;就类似于在开发ARM和DSP中操作外设一样&#xff0c;不同时的是&#xff0c;我们可以通…...

vim+cscope+ctags

一、简单安装 1.安装cscope # apt install cscope 2.安装ctags # apt install ctags 3.taglist安装 下载Vim source code browser plugin - Browse /vim-taglist at SourceForge.net&#xff0c;解压和复制文件 # unzip taglist_46.zip# cp doc/taglist.txt /usr/share/…...

xml做网站/刷推广链接人数的软件

2019独角兽企业重金招聘Python工程师标准>>> springboot 提供了可插拔的内嵌容器方案。 内嵌容器优势&#xff1a; 1.减少外部容器依赖&#xff0c;可移植性高 2.易测试易部署 引入内嵌容器&#xff1a; 引入tomcat&#xff08;默认&#xff09;&#xff1a;直接添加…...

上海专业高端网站建设服务公司/新郑网络推广公司

文章目录前言一、应用生命周期1.JS配置2.API调用2.1 onLaunch(Object object)2.2 onShow(Object object)2.3 onHide()2.4 onError(String error)2.5 onPageNotFound(Object object)2.6 onUnhandledRejection(Object object)2.7 onThemeChange(Object object)二、全局变量前言 …...

企业网站怎么做的高大上/网站域名解析ip

博客园目录生成和页面优化 一直以为博客园和CSDN不一样&#xff0c;无法生成目录&#xff0c;前两天看到一个人的博客发现有目录&#xff0c;就去网上搜了一下&#xff0c;发现通过脚本可以实现&#xff0c;下面就介绍详细的步骤 一、目录生成 1.1 操作步骤 1、在博客园后台【设…...

注册网站帐号注销/淘宝推广怎么做

我的简单jQuery的加载语句需要花费太多时间(50秒).没有服务器端问题,服务器的页面逻辑很简单.我也试过$.ajax,$.get甚至尝试使用ManualAJAX调用(XMLHttpRequest).以下是jQuery加载的示例.$(function() {$(#frmPrd).live(submit, function(event) {event.preventDefault();mUrl …...

动图从哪个网站做/编程培训机构排名前十

在写一个WinCE注册表操作的时候&#xff0c;调用RegDeleteKey函数却不能删除注册表项&#xff0c;始终返回5的错误(ACCESS DENY)。查了一下&#xff0c;有的说是什么权限的问题&#xff0c;操作的时候都是先打开注册表&#xff0c;如果打开成功&#xff0c;即调用RegDeleteKey删…...

贵州建设考试网站/网络推广的优势

1.场景和需求&#xff1a; 有一个接口&#xff0c;里面做了获取数据和更新的操作&#xff0c;非常耗时&#xff0c;一条数据需要花费1秒钟 检查updateJiakeGejieData这个接口&#xff0c;里面有一段for循环操作&#xff0c;需要一条一条读取数据并更新 再检查getAccountInfo这…...