Hadoop-MapReduce&YARN面试总结

Transformer 常见面试题深度解析:从原理到工程实践 先给结论,再展开推导:面试官时间有限,先一句话回答核心,再补充细节;公式与直觉并重:能推导dk\sqrt{d_k}dk​​的方差来源,也能用"防止 softmax 饱和"的直觉解释;主动关联工程实践:提到 FlashAttention、KV Cache、GQA 等,体现落地经验;诚实面对不确定:不清楚的细节不要编造,可以说"这部分我了解思路,具体实现需要再确认";准备一个完整项目故事:能讲清"遇到什么问题 → 如何定位 → 用什么方案 → 效果如何量化"。 阅读详情

MapReduce计算流程

先看Map端,文件上传HDFS会切成Block,默认128M,然后有一个逻辑切片叫Split,它不改动存储,只是用来控制参与计算的节点数,一个切片就对应一个MapTask,Map任务从自己的切片里读数据,每次读一行,拼成KV,Key是偏移量,Value是一行内容。然后数据不是直接写磁盘,而是先写进内存里的环形缓冲区,默认100M,写到80%就触发溢写,写进去之前会先分区,默认是Key的哈希对Reduce数取模。缓冲区里的数据在溢写之前还会排个序,先按分区排,再按Key排,所以溢写出去的小文件内部是有序的。溢写会产生很多小文件,后面再归并成一个大文件,这个合并过程还能顺便用Combiner做一次局部汇总。
然后进入Shuffle,这是Map和Reduce之间最关键的环节。Reduce端通过HTTP去各个Map拉取属于自己的那份数据。相同的Key拉到同一个Reduce,然后把拉回来的数据进行一次全局排序,排好之后,按Key分组,每一组调一次reduce方法。最后每个Reduce把结果写到HDFS上,一个作业就走完了

YARN集群工作流程

首先客户端先向 ResourceManager 发一个 getNewApplication 请求,ResourceManager返回给客户端一个JobID和一个存资源的临时目录,然后客户端把作业的jar包,配置,算好的分片都传到HDFS,再用submitApplication把作业提交给ResourceManager,ResourceManager里的应用管理器收到之后,交给调度器,调度器选一台NodeManager,开一个Container,在里面把ApplicaitonMaster起起来。ApplicationMaster起来后的第一件事是向ResourceManager注册,然后收集分片情况,向ResourceManager申请资源,它用轮询的方式通过RPC拿资源,拿到之后再找对应的NodeManager,让它启动Container,然后把任务起起来,任务跑的过程中,通过RPC向ApplicationMaster汇报状态和进度,ApplicationMaster一旦发现哪个任务失败,就重新申请资源把它重启。
最后所有任务跑完,ApplicationMaster 向 ResourceManager申请注销,然后把自己关掉,资源全部释放,yarn的工作就完成了,最后计算框架更新计算进度和状态。

为什么会产生yarn

在Hadoop1的时候,MapReduce是把资源调度和计算揉在一起的,集群里就一个JobTracker,它既管资源分配,又管作业调度,下面的TaskTracker干活然后向它汇报。问题有两个。第一,JobTracker一个人扛所有事,因为是单点的,集群一大,就不行了,第二,这种系统是专用的,只能跑MapReduce这一类计算,想跑别的计算模型,就得再搭一套,资源和框架都对不上。所以Hadoop2就把MapReduce拆成了两块,一块是yarn,专门负责资源调度管理,另一块是MapReduce本身,专门负责计算,这样一抽出来,资源调度就变成了一个通用的平台,以后其他计算框架比如spark只要照着yarn的接口来,就能共享同一个集群的资源,不同再重新搭一套。

MapReduce数据倾斜

第一,将默认的哈希分区改成自定义分区,结合业务让每个分区数据量基本平衡
第二,可以改Key,在Key前面加随机数,让哈希之后能均匀一点。
第三,Reduce慢,那就给它加内存,加虚拟核
第四,如果是只有一个Reduce拖慢的,那就加Reduce数量分摊压力,前面这一层做完,再来一个作业做最终聚合。

Hadoop压缩算法

按位置选择,第一次读进来,选可切分的,也就是BZip2 或者 LZO,不然只有一个Map,中间Map到Reduce这一段,要选压缩解压都快的,比如Snappy、LZO、LZ4、Zstd,最后Reduce输出,看下游,如果还要接着算就选可切分的BZip2,如果是归档存起来,就选压缩比高的Gzip或者BZip2。

MR优化

先说小文件,上传到HDFS之前就把小文件合并掉,第二,合并之后如果文件太大,换存储格式或者压缩,但要注意能不能切片,第三,如果小文件已经在HDFS里了,那就用CombineFileInputFormat这类读取类,在读的时候合并。
然后就是数据倾斜,自定义分区,加盐改Key,给Reduce加资源,或者加Reduce数量做二次聚合
然后是推测执行,做法是给慢任务起一个备份任务,两份同时跑同一份数据,谁先跑完用谁,另一个杀掉,本质就是利用资源换时间,所以集群资源紧张的时候不能开他。
最后从执行流程上优化,分Map和Reduce两段,Map这边,环形缓冲区默认100M,到80%溢写,内存够就调大,能少溢写几次,合并因子默认一次合10个,调大能少合几轮;再加上Combiner做局部汇总、压缩中间数据、调响应线程数。Reduce这边,并行拉取默认5,可以调大,然后就是读缓存,默认数据是要写磁盘再读回来的,把那个参数从0调大一点,让一部分数据直接进Reduce,能省一次落盘回读。

TGAT Python:图神经网络中的动态图算法 其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。 阅读详情

相关推荐

3-RRR并联机器人结构详解:从运动学到奇异点分析(附MATLAB仿真代码)

本文详细解析了3-RRR并联机器人的结构设计、运动学建模及奇异点分析,并提供了MATLAB仿真代码。通过对称性设计和可分析性,3-RRR结构成为教学与研究的理想对象。文章从基础杆件参数设置到奇异位形的实时捕捉,深入探讨了机构运动的数学本质,并分享了仿真调试中的实用技巧,助力工业自动化和精密控制应用。

sunny的博客 367

这些MapReduce&YARN高阶原理你都知道吗?

dev的maximum-capacity属性被设置成了75%,所以即使prod队列完全空闲dev也不会占用全部集群资源,也就是说,prod队列仍有25%的可用资源用来应急。逻辑层面引入角色:AppMaster角色(任务管理者),随任务而来随任务而走,运行在NodeManager。在这个配置中,在root队列下面定义了两个子队列prod和dev,分别占40%和60%的容量。下面是一个简单的Capacity调度器的配置文件,文件名为。若有错误与不足请指出,关注DPT一起进步吧!参数进行配置的,默认采用。

m0_66925868的博客 1142

【医学图像分割网络】之Res U-Net网络PyTorch复现

【医学图像分割网络】之Res U-Net网络PyTorch复现 1.内容 U-Net网络算是医学图像分割领域的开山之作,我接触深度学习到现在大概将近大半年时间,看到了很多基于U-Net网络的变体,后续也会继续和大家一起分享学习。这次分享ResNet+U-Net的一个改进版,ResNet本身就是一个十分优秀的backbone,目前应用仍然十分广泛,我们融合进ResNet后,我们就可以使得U-Net进行迁移学习了。 1.将Resnet作为encoder替换U-Net原始结构 2.U-Net提出时间较早,当时还没

qq_39071739的博客 1万+

大数据面试题-MapReduce&YARN

1、mapreduce流程? Map阶段: 1:读取输入文件的内容,并解析成键值对(<key, value>)的形式,输入文件中的每一行被解析成一个<key, value>对,每个<key, value>对调用一次map()函数。 2:用户写map()函数,对输入的<key,value>对进行处理,并输出新的<key,...

夜雨寒霜 859

告别Modern Standby噩梦:Win11睡眠断网冻结的根源剖析与S3睡眠回归实战

本文深入剖析了Windows 11中Modern Standby(现代待机)模式导致睡眠后断网、系统冻结等问题的根源,指出其与硬件驱动、后台活动的兼容性矛盾。文章提供了通过修改注册表键值强制系统回归稳定S3睡眠状态的详细实战步骤,帮助用户彻底解决睡眠故障,实现可靠的远程访问与挂机任务。

weixin_29210727的博客 607

数字蓝牙功放

数字蓝牙功放(TPA3110+BK8000L),基于D类数字功放芯片TPA3116蓝牙功放,HIFI级带滤波15Wx2蓝牙数字功放,支持有线和蓝牙两种音源输入

runweipa的博客 1420

最新大数据毕业设计选题推荐-基于大数据的厄瓜多尔沿海气象数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的厄瓜多尔沿海气象数据可视化分析系统》,采用Hadoop+Spark实现数据存储与计算,结合Django/Spring Boot后端与Vue+ECharts前端,完成风场、气压等要素的多维度可视化。系统支持数据查询、统计分析与交互展示,适用于气象科研与教学实践,提供双语言版本及完整源码,助力大数据技术在区域气象分析中的应用探索。

IT研究室的博客 229

硬件工程师的破局之路:为何你才是考取软考高级架构师的“天选之子”?

硬件工程师如何转型系统架构师:独特优势与实战路径 文章揭示了硬件工程师在考取系统架构设计师证书时的独特优势。作者指出,硬件工程师的全局思维、接口设计能力和可靠性经验正是系统架构的核心要素。通过将硬件经验升维为架构思维(从引脚到接口、从单板到系统、从实现到权衡),硬件背景反而成为竞争优势。文章建议通过知识补全、建立架构决策日志和术语转换练习来备考,并强调硬件工程师在软硬协同时代的独特价值——既能统领硬件设计,又能为软件搭建最佳舞台。文末鼓励硬件工程师以更高视野看待职业发展,将系统架构师认证视为水到渠成的职业升

云轩阁 534

最新大数据毕业设计选题推荐-基于大数据的歌曲流媒体寿命与分发数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的歌曲流媒体寿命与分发数据可视化分析》系统,采用Hadoop+Spark进行数据存储与处理,结合Django/Spring Boot后端与Vue+Echarts前端,实现音频特征、歌曲寿命、分发渠道等多维度数据分析与可视化。系统涵盖数据清洗、聚合统计、大屏展示等功能,完整呈现歌曲生命周期与渠道影响,为毕业设计提供可落地的大数据实战案例。

IT研究室的博客 16

BEV和OCC学习-4:数据准备生成pkl文件(NuSences)

info[‘cam_instances’][‘CAM_XXX’][i][‘bbox_3d’]:长度为 7 的列表,以 (x, y, z, l, h, w, yaw) 的顺序表示实例的 3D 边界框。info[‘cam_instances’][‘CAM_XXX’][i][‘bbox’]:2D 边界框标注(3D 框投影的矩形框),顺序为 [x1, y1, x2, y2] 的列表。info[‘cam_instances’][‘CAM_XXX’][i][‘attr_label’]:实例的属性标签。

zfjBIT的专栏 1699

Android HAL 架构详解,底层开发不再难

HAL Binder 这套机制牛在哪?性能:一次拷贝,快如闪电。规范:HIDL 让接口定义整齐划一,维护省心。兼容:版本管理做得好,新老设备都能跑。有了这套通信体系,HAL 就像打了通脉,上下贯通,硬件操作变得丝滑无比。通信机制搭好了桥,接下来 HAL 得真正把手伸到硬件上。这部分是 HAL 的 “最后一公里”,直接决定硬件能不能被用起来。HAL 的接口定义是整个体系的灵魂,它决定了上层和底层怎么 “说话”。

大模型大数据攻城狮的专栏 1673

最新大数据毕业设计选题推荐-基于大数据的二手车价格影响因素分析与可视化-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的二手车价格影响因素分析与可视化》系统,采用Hadoop+Spark进行数据清洗与分析,结合Django/Spring Boot后端与Vue+ECharts前端,实现品牌、车龄、里程等多维度价格影响因素的统计与可视化。系统支持多平台数据接入,提供直观的数据分析入口,助力二手车定价研究,兼具技术实践与应用参考价值。

IT研究室的博客 168

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Hadoop环境部署

本文记录 Hadoop 集群部署实操步骤,并针对 Hadoop 原生安全短板,梳理大数据集群常见安全风险与防护要点。

2401_88667659的博客 286

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最新大数据毕业设计选题推荐-基于大数据的电力网格稳定性仿真数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的电力网格稳定性仿真数据可视化分析系统》,采用Hadoop+Spark实现仿真数据分布式存储与计算,结合Django/Spring Boot后端、Vue+ECharts前端,完成数据看板、稳定态势、功率扰动、响应弹性等七大功能模块。系统通过Spark SQL聚合分析指标,实现电力网格稳定性可视化,适用于毕业设计与项目实战,支持多语言版本及源码获取。

IT研究室的博客 263

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大数据与应用服务赛题复现-Hadoop搭建

grep -E 'master|slave' /etc/hosts # 三节点解析(别用 tail,文件末尾是 IPv6 行)若赛规要求保留口令校验,赛后在 master 执行 sudo rm /etc/sudoers.d/90-dubhe 回退。# ⑤ 验证(★ 循环里的 ssh 必须加 -n,ssh 未加 -n 会读走 bash -s 的剩余 stdin)② ssh master / slave1 / slave2 三条命令均无需密码返回主机名。

lightningyang的博客 441

最新大数据毕业设计选题推荐-基于大数据的电影评分与热度数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的电影评分与热度数据可视化分析系统》,采用Hadoop+Spark构建大数据处理链路,结合Django/Spring Boot后端与Vue+ECharts前端,实现电影评分、热度数据的采集、清洗、分析与可视化。系统支持高分影片管理、评分分布、热度传播趋势等多维度展示,提供可运行、可扩展的毕业设计参考,涵盖完整技术栈与源码,助力学生掌握大数据项目全流程开发。

IT研究室的博客 285

# WPF ContextMenu 控件详解与使用—WPF 中的控件(8)--上下文菜单控件(ContextMenu)

`ContextMenu`(上下文菜单控件,右键快捷弹出)是 WPF 中最常用的弹出式交互控件之一,以浮层形式展示一组操作命令,用户右键点击关联控件时触发显示。它继承自 `MenuBase`(间接继承 `ItemsControl`),核心由 `MenuItem`(菜单项)和 `Separator`(分隔线)组成,支持嵌套子菜单、图标、复选、命令绑定、自定义样式等能力。

yunmaowu0917的博客 276

最新大数据毕业设计选题推荐-基于大数据的电子竞技生物特征与表现数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的电子竞技生物特征与表现数据可视化分析》系统,采用Hadoop+Spark进行数据存储与计算,结合Django/Spring Boot后端、Vue+ECharts前端,实现电竞选手生理指标、操作表现与环境负荷的多源数据整合与可视化。系统涵盖数据管理、统计分析、实时看板等功能,支持Python/Java双版本,具备完整技术链路与可扩展性,适用于教学实践与项目开发参考。

IT研究室的博客 405

大数据与应用服务赛题复现-JDK 与 Hadoop 安装配置

Ubuntu 默认的 127.0.1.1 映射会让 NameNode/RM 绑到回环,务必加 rpc-bind-host/http-bind-host/bind-host=0.0.0.0。若 java -version 显示 11.x,说明有其它 profile 覆盖,执行 sudo update-alternatives --set java /usr/local/jdk/bin/java。若误执行,必须同时清空所有 DataNode 的 /usr/local/data/data 再启动;

lightningyang的博客 175

ubuntu安装hadoop系统

本文详细介绍了基于VMware克隆虚拟机搭建三节点Hadoop分布式集群的全过程:使用同一Ubuntu镜像克隆出master、worker1、worker2三台虚拟机,依次配置主机名、固定IP(如192.168.82.10/11/12)、SSH服务及免密登录,确保节点间网络互通。随后安装Java,下载配置Hadoop并分发至各节点,最终初始化启动集群,验证其存储与计算功能,实现高效的大数据环境部署。

qq_43592674的博客 339

WPF 依赖注入 + 信使实战:Autofac 构造函数注入 + WeakReferenceMessenger 跨窗口通信(下篇)

/ 在框架基础消息之上,也支持自定义消息类型// 在框架基础消息之上,也支持自定义消息类型 public class DataValueIsObject : ValueChangedMessage < Person > {// 自己扩展 } }// 自己扩展是框架内置的消息基类,"值发生变化"语义,Value属性就是携带的数据。这里传的是Person对象——消息可以携带任意引用类型,不必是字符串。View(XAML 绑定)

2501_94699871的博客 242

C# WPF 控件模板详解:ControlTemplate、ContentPresenter 与 TemplateBinding

本文详解WPF中ControlTemplate的使用,从基础概念入手,对比Style与ControlTemplate的区别,通过实例展示如何自定义按钮外观。重点讲解ContentPresenter内容呈现、TemplateBinding实现属性联动,并结合模板触发器实现悬停、按下等交互效果,附可运行代码,适合进阶开发者掌握控件外观定制技巧。

C#,机器视觉,上位机开发 394

最新大数据毕业设计选题推荐-基于大数据的供应链库存缺货与成本数据可视化分析-大数据-Spark-Hadoop-Bigdata

本文介绍《基于大数据的供应链库存缺货与成本数据可视化分析》系统,采用Hadoop+Spark处理海量数据,结合Python+Django与Java+Spring Boot后端,Vue+ECharts实现可视化。系统涵盖库存、缺货、成本三大分析模块,通过数据清洗、聚合计算与图表展示,帮助用户直观掌握供应链运营状况。适用于毕业设计、项目实战及数据分析学习,提供完整源码与多技术栈支持,具备可扩展性与教学价值。

IT研究室的博客 82

smart-tunnel-ai · 隧道/高速智慧化 AI 应用项目

面向的工程师:一个能跑通、能改、能讲清楚的 Spring Boot + Spring AI 项目。:它不是「调了个 ChatClient 输出一句话」,而是把切块策略、增量入库、来源溯源、防幻觉、工具调用、结构化输出、评估集、密钥守卫、CI 护栏这些工程问题都落到了代码里。每一处都能指向具体类讲取舍。详见。

futurn_hero的博客 307

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 210

Spring 原理高频面试题全解:Bean 生命周期、三级缓存与 @Transactional 失效(2026 招聘 JD 真题复盘)

按 2026 招聘 JD 与一线面经整理 10 道 Spring 高频题:Bean 生命周期与扩展点顺序、AOP 代理生成时机、三级缓存为何必须三级、构造器注入循环依赖为何无解、@Transactional 六类失效与自调用修复三法、REQUIRES_NEW 连接池耗尽风险、事件总线同步语义与 @TransactionalEventListener、自动配置从 spring.factories 到 imports 的演进、自定义 Starter 三步走,附速查表与三条追问链。

蒙眼过河 319
上一篇: HDFS面经总结
下一篇: Hive面试总结
程序员梅雨
博客等级 码龄3年 19粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值