大数据开发面试深挖 15 题
涵盖实时数仓、数据倾斜调优、流批一体、Lakehouse 数据湖与治理实战。
题目为高频真实问法;①②③ 三层答案为模拟示范,非真实面经
① 简历常见平淡回答
「在 Spark UI 里面看哪个 Task 跑得慢,调大 shuffle 分区数量,或者直接加内存把集群调大。」
单靠盲目增加分区或堆砌内存无法解决少数 Key 严重聚集的根本矛盾,未讲清通过两阶段聚合、广播变量 Join 与加盐打散的系统方案。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
排查数据倾斜必须深入 Spark UI 定位瓶颈 Stage:展开 Tasks 详情查看分位图,若中位数耗时仅需几秒但 Max 耗时高达半小时且 Shuffle Read 数据量高出成百上千倍,即确诊倾斜。治理策略按场景施策:若发生在 GroupBy 聚合,推行两阶段聚合(给倾斜 Key 拼接随机前缀做局部聚合,去除前缀再做全局聚合);若发生在两表 Join,当其中一张表小于 10GB 时强制开启广播连接(Broadcast Join)彻底消灭 Shuffle;对于大表对大表 Join,将单侧倾斜 Key 加盐打散并对另侧表做对应行复制膨胀。
① 简历常见平淡回答
「在 Flink Web UI 里面看哪个算子反压标红了,直接给 TaskManager 增加并发度或者加机器。」
简单增加并发可能导致外部存储连接池打满引发二次故障,缺乏通过反压指标链条自底向上排查、火焰图分析以及算子性能瓶颈定位的能力。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
排查反压核心是「顺藤摸瓜找最下游瓶颈算子」。在 Web UI 找到反压指标为 High 的最下游算子(其后继算子正常无反压):展开其火焰图(FlameGraph)定位热点:若是 CPU 密集,排查反序列化开销、复杂正则或无缓存的高频外部接口调用;若是 IO 阻塞,排查写入 Sink 端(如 HBase/Elasticsearch)是否发生写入热点或未启用批量异步写入;若是垃圾回收导致卡顿,调优 JVM 堆外内存并排查 RocksDB 状态后端读写放大。针对根因调优后,反压自然消除。
① 简历常见平淡回答
「用数据自带的时间作为事件时间,设个允许延迟几秒的水位线,太晚的数据直接扔掉或者存到日志。」
仅停留在概念叙述,未讲清乱序容忍窗口计算、多并行度对齐取最小值机制以及侧输出流(Side Output)的完整金融级对账设计。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
Watermark 是衡量事件时间推进的单调递增时钟。我们采用周期性生成器定义 Bounded-OutOfOrderness 水位线:容忍网络抖动造成的 5 秒乱序数据;在多并行度算子合流时,以所有上游输入分区的最小 Watermark 为当前算子基准,防止时间倒流;对于超过延迟容忍度的极端迟到数据,坚决不盲目丢弃,而是通过 sideOutputLateData 旁路分流输出到专属 Kafka 死信队列,随后由离线校准批处理作业重新对账合并,实现既保实时吞吐又保金融级数据完整。
① 简历常见平淡回答
「开启 Flink 的 Checkpoint,配置生产者重试,把读隔离级别设为已提交。」
缺乏对分布式二阶段提交协议(2PC)在流式环境下的执行时序、崩溃恢复过程以及幂等性结合两阶段提交边界条件的深入解析。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
端到端 Exactly-Once 依赖「分布式快照与两阶段提交(2PC)协议的无缝协同」。在 Flink 侧开启基于 Chandy-Lamport 算法的周期性 Checkpoint;当检查点触发时,JobManager 广播 Barrier,数据源保存 Kafka Offset;中间状态算子保存内部快照;进入 Sink 阶段时由 FlinkKafkaProducer 驱动 2PC:在当前检查点进行期间开启预提交(Pre-commit)事务,将数据写入底层 Kafka 事务分区;一旦所有算子 Checkpoint 成功通知到达,在 commit 阶段正式提交事务,下游仅能消费已提交消息,实现端到端零丢失零重复。
① 简历常见平淡回答
「把大宽表拆成事实表和维度表,事实表放数字指标,维度表放各种属性,建立星型模型。」
忽视了事实表经典的三大分类(事务事实表、周期快照事实表、累积快照事实表)各自适用的业务生命周期场景与粒度设计原则。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
维度建模必须根据业务过程生命周期精准选择事实表类型:第一类事务事实表(Transaction Fact Table):以最细原子事件记录数据(如单笔支付明细),具备极高灵活性但无法直观体现跨周期存量;第二类周期快照事实表(Periodic Snapshot):按固定时间周期(如每日、每月)对存量状态拍摄定格快照(如每日账户余额、库存结存);第三类累积快照事实表(Accumulating Snapshot):专为覆盖多里程碑节点的不确定生命周期流程设计(如从下单、支付、出库到签收的跨月工单),具备多时间戳与动态更新特性。
① 简历常见平淡回答
「数据湖就是把数据存在 HDFS 或者对象存储上,支持用 SQL 进行增删改查,比传统的 Hive 表更新更快。」
停留在支持 ACID 基础概念,未深入元数据分层管理(Snapshot/Manifest)、读时合并(MOR)与写时复制(COW)及隐藏分区的底层机理。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
现代数据湖格式打破了传统数仓无法高并发行级更新的死穴。Iceberg 核心优势在于「优雅解耦的无目录依赖元数据架构」:通过 Snapshot 到 Manifest List 再到 Manifest File 的树状元数据管理,彻底消除了 O(N) 级目录扫描,原生支持隐藏分区(Hidden Partitioning)与零拷贝分支快照;Hudi 则深度绑定流式实时场景,精通读时合并(Merge-on-Read)并利用布隆过滤器索引实现毫秒级增量更新;在离线湖仓一体分析场景首选 Iceberg,在超高频低延迟近实时更新流场景优先考虑 Hudi。
① 简历常见平淡回答
「以前离线用 Hive、实时用 Kafka+Flink,两套代码太难维护,现在全换成数据湖一张表直接跑。」
未能深刻拆解 Lambda 架构双路维护成本、指标口径漂移与数据对账噩梦的本质,缺乏基于统一存储引擎与统一计算语义的工程落地架构。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
Lambda 架构的核心痛点是「两套逻辑、双倍资源、口径漂移」。我们推动向 Lakehouse 架构演进:在存储层,采用 Apache Iceberg 统一替换底层的 Kafka 与 Hive 分离存储,利用其近实时秒级摄入与 ACID 事务保障单一份数据底座;在计算层,推行 Flink 负责流式增量注入,Spark 负责大批量全量重算,二者共用一套业务 SQL 逻辑;通过存储统一与元数据打通,彻底消除了历史离线数仓与实时看板数据对不齐的顽疾,计算存储硬件成本整体压降 45%。
① 简历常见平淡回答
「写个定时任务用 HDFS 命令定期做合并,或者让开发在 Spark 代码最后加上 coalesce(10) 减少输出文件。」
临时合并脚本只是治标不治本,未分析流式微批高频提交、动态分区不当与 NameNode 内存枯竭的系统连锁反应。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
海量小文件是分布式存储的隐形杀手,会导致 NameNode 内存爆满及 Spark 任务切分出海量微型 Task。我们采取全流程分级治理:源头控制端,禁止流式作业以秒级生成文件,强制配置滚动策略(按大小达到 128MB 或时间达到 15 分钟滚动);写入中间件端,在 Spark 写入前按分区键执行 repartition 控制并行度,禁止小数据量全网发散;后台自愈端,在 Iceberg 湖仓层引入自动压缩异步编排,周期性将小数据文件重写合并为标准 Parquet 列存文件,将全集群小文件数量压缩 90% 以上。
① 简历常见平淡回答
「把表和表之间的依赖关系画成架构图挂在 Wiki 上,每天早上派人手动看看报表数据有没有异常。」
手动维护拓扑图在大型复杂数仓中瞬间过时失效,缺乏基于 SQL AST 解析、运行时作业元数据自动提取以及动态波动阻断的平台化能力。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
数据治理必须依靠「代码即血缘与自动化阻断体系」。在血缘层,基于 ANTLR4 自研 SQL 解析器,结合 OpenLineage 自动拦截解析 Hive、Spark 与 Flink 作业提交的 AST 抽象语法树,提取表级与字段级依赖关系图谱并写入图数据库;在质量监控层(DQC),在调度流水线关键节点挂载断言规则:强制校验主键非空、唯一性、外键孤儿率以及关键金额指标环比波动(超出 30% 异常跳变);一旦核心门禁断言失败,立即自动化阻断下游报表聚合任务并向 On-Call 工程师拨打紧急告警。
① 简历常见平淡回答
「要快就用 ClickHouse,单表查询性能无敌,如果有多表关联查询的需求就选 StarRocks 或者 Doris。」
停留在坊间口口相传,未深入向量化执行引擎、SIMD 硬件加速、成本基准优化器(CBO)以及分布式存算分离架构差异。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
OLAP 选型取决于「查询拓扑模式与运维复杂度」。ClickHouse 凭借极致的列式存储压缩与手写 SIMD 向量化加速,在大宽表单表深度聚合场景下性能无出其右,但分布式多表分布式 Join 机制脆弱且节点扩缩容重平衡运维成本高;StarRocks 采用现代全面向量化执行器,配合自研强悍的 CBO 优化器与 Pipeline 执行框架,在大规模多表复杂 Shuffle Join(星型/雪花模型)场景下表现出碾压级优势,且原生支持存算分离与主键模型实时并发更新;因此高频宽表看板优选 ClickHouse,复杂即席灵活分析与实时多表关联首选 StarRocks。
① 简历常见平淡回答
「在数仓抽取数据的时候把手机号中间四位改成星号,重要的财务表给普通开发去掉查询权限。」
点状手段无法防范分析师跨表关联推测出个人身份(差分隐私风险),缺乏基于 Apache Ranger 的行级列级动态权限控制与透明审计机制。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
大数据安全必须实现「集中策略管控、动态无感脱敏、全域访问留痕」。我们基于 Apache Ranger 统一管辖 Spark、Trino 与 Hive 的安全鉴权:第一步建立统一数据资产敏感字典,自动打上 PII 个人隐私标签;第二步配置基于角色与属性的访问控制(RBAC/ABAC),普通分析师查询包含敏感字段的表时,Ranger 自动在执行计划层面注入重写规则,将手机号、身份证动态执行正则掩码(Masking);第三步实施行级安全过滤(Row-level Filtering),根据部门维度自动追加 WHERE 条件隔离数据边界;全程所有 SQL 执行记录持久化归档满足审计追溯。
① 简历常见平淡回答
「赶快看是哪个调度任务卡住了,把卡住的任务重跑一下,给相关领导发消息说系统故障晚点出报表。」
盲目重跑可能加剧集群资源雪崩且无法保证在开会前交付核心指标,缺乏基于关键路径(Critical Path)分析、优先级降级与清晰应急通报的职业素养。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
核心数据延迟事故遵循「保核心产出、排关键路径、分级通报、事后复盘」。第一步决策定调:立即调出调度系统甘特图,定位阻塞在关键路径(Critical Path)上的瓶颈任务;第二步资源抢占:立即终止集群中正在运行的非关键低优先级探索性查询,将全部 YARN / K8s 计算算力强行抢占倾斜给阻塞的核心 ETL 链路;若核心链路仍赶不上早会,立刻启动降级预案:优先产出高管最关心的 3 个核心大盘指标,次要细分维度延后产出;第三步同步机制:指定专人以客观口径向管理层同步进度与预计交付时间;恢复后立项治理长尾慢任务。
① 简历常见平淡回答
「看公司领导听谁的,领导让用哪套口径数仓就按哪套口径算,或者在数仓里建两张不同的报表各算各的。」
建两张表各自计算是数仓架构师最严重的失职,不仅加剧了数据孤岛与跨部门撕扯,更会导致高层决策失焦与信任坍塌。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
指标口径冲突本质上是「业务场景定位差异而非纯粹的技术对错」。作为数仓架构师,我绝不妥协建两张混乱表:首先建立「业财对齐联合工作组」,拉齐双方业务背景:厘清业务侧看重的是前端实时转化驱动(如拍下即计入 GMV),而财务侧看重的是法律审计与净收益(如实收扣除退款才计入);其次推行规范化指标命名拆解:在数仓指标字典中明确拆解为「下单 GMV」与「结算净营收」,坚决废弃模糊不清的统称;最后在 BI 门户打上清晰的数据血缘与口径解释说明,并形成企业级《核心指标唯一定义白皮书》报备经委会确认。
① 简历常见平淡回答
「直接在集群上配置杀死慢查询的脚本,超过 10 分钟的查询直接 kill 掉,限制他们只能查前 100 条数据。」
粗暴杀死查询会引发业务方强烈抗议并影响其正常商业决策,缺乏资源配额物理隔离、前置静态慢 SQL 拦截与优化赋能的全局治理视野。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
治理低效查询必须采取「物理硬隔离、前置语法审查与主动技术赋能」三管齐下。首先在资源调度层实施硬隔离:将生产保障队列与即席分析(Ad-hoc)队列严格按权重切分,即使 ad-hoc 队列跑满也绝不影响生产调度核心作业;其次在查询网关层配置前置静态拦截规则(如禁止全表无分区扫描、禁止笛卡尔积 Join、强制注入 LIMIT 上限);最后建立每周「慢查询黑榜与门诊辅导」机制:挑选典型慢 SQL,主动联系编写人帮其改写优化(如指导其运用分区裁剪与列剪枝),既守住了集群底线,又赢得了业务认可。
① 简历常见平淡回答
「现在大模型很火,传统大数据技术已经过时了,应该全面转行去搞大模型算法和训练。」
盲目唱衰大数据基础设施忽视了高质量预训练数据预处理、RAG 向量检索与 AI 数据飞轮高度依赖大数据工程底座的客观现实。
② 面试官追问逻辑
③ 深挖后可量化的高分示范
大模型时代的到来不仅没有削弱大数据基础设施,反而是将大数据工程推向了全新的深水区。数据是所有 AI 的核心燃料:第一,从传统结构化数仓扩展为万亿级非结构化多模态数据湖,海量文本、代码的分布式清洗、去重与高质量筛选,依然极其依赖 Spark 和 Ray 等分布式大数据底盘;第二,RAG 与大模型知识外挂体系,本质上是实时流计算与向量搜索的深度融合;第三,AI 落地最核心的数据飞轮,依然依靠数仓的指标归因与全链路数据血缘。我的定位是成为「精通大数据工程底座且深度融合 AI 基础设施的复合架构师」。
换个岗位,继续练
练完大数据开发工程师,通常接着练这些相邻岗位
后端开发面试深挖 15 题
核心技术 · 分布式 · BQ
查看题库
同职能族数据分析师面试深挖 15 题
指标体系 · 归因分析 · BQ
查看题库
能力延伸大模型算力优化面试深挖 15 题
推理加速 · 显存优化 · 高并发服务 · BQ
查看题库
没找到你的岗位? 查看全部 25 个岗位 →