2021春招经验贴 大数据开发 阿里字节小米

2021春招经验贴 大数据开发 阿里字节小米
最新回答
净雅

2026-02-06 07:39:14

2021春招大数据开发岗位(阿里、字节、小米)经验总结如下:

一、面试流程与结果
  • 投递时间:3月开始投递简历,经历小米(2轮技术面)、阿里(测评+笔试+2轮技术面)、字节(3轮技术面)。
  • 结果:通过小米、字节面试,因岗位方向不符放弃小米,阿里因补笔试难度高未通过,最终接受字节商业化广告大数据开发实习offer。
二、知识点分块总结1. Hadoop
  • 核心组件:HDFS(分布式存储)、MapReduce(计算框架)、YARN(资源管理)。
  • 关键问题:

    MapReduce处理流程:输入分片→Map阶段(键值对输出)→Shuffle(分区、排序、合并)→Reduce阶段(聚合结果)。

    数据倾斜解决方案:

    预处理(如采样分析倾斜键)。

    倾斜键单独处理(如拆分、加随机前缀)。

    合并小文件、调整并行度。

    HDFS与MapReduce关系:HDFS提供存储基础,MapReduce基于HDFS实现计算向数据移动。

2. Hive
  • 核心问题:

    内部表 vs 外部表:内部表数据由Hive管理,删除表时数据一并删除;外部表仅管理元数据,数据独立存储。

    数据仓库分层:ODS(原始数据层)→DWD(明细数据层)→DWS(汇总数据层)→ADS(应用数据层)。

    HQL优化:

    分区裁剪、合理使用索引。

    调整并行度、选择高效存储格式(如ORC、Parquet)。

    避免全表扫描,使用谓词下推。

3. Spark
  • 核心问题:

    Job、Stage、Task关系:Job由Action触发,Stage由Shuffle划分,Task是Stage的最小执行单元。

    Shuffle优化:

    减少数据倾斜(如使用repartition或coalesce)。

    启用bypassMergeSort优化小分区。

    RDD理解:弹性分布式数据集,支持容错(血缘关系)、不可变、分区存储。

4. Flink
  • 核心问题:

    与Spark Streaming对比:Flink基于事件驱动,支持低延迟(毫秒级);Spark Streaming基于微批处理,延迟较高(秒级)。

    Watermark机制:处理乱序事件,通过时间戳和延迟阈值触发窗口计算。

    状态一致性:通过一致性检查点(Checkpoint)和端到端精确一次语义保障。

5. MySQL
  • 核心问题:

    索引优化:

    使用B+树结构,覆盖索引减少回表查询。

    避免索引失效(如使用!=、OR、函数操作字段)。

    事务隔离级别:读未提交(脏读)→读已提交(不可重复读)→可重复读(幻读)→串行化。

6. Kafka
  • 核心问题:

    可靠性保障:

    生产者通过ACK机制确认消息写入。

    副本同步策略(ISR列表动态维护)。

    数据有序性:单分区内消息有序,多分区需通过分区键设计保障全局有序。

7. Redis
  • 核心问题:

    高效原因:内存存储、单线程模型、IO多路复用。

    持久化策略:

    RDB(快照,适合备份) vs AOF(日志追加,适合数据安全)。

    缓存问题:

    雪崩:缓存集中失效,通过加随机过期时间缓解。

    击穿:热点键失效,使用互斥锁或永不过期策略。

8. Java
  • 重点复习:

    多线程:线程池、锁机制(synchronized、ReentrantLock)、CAS操作。

    JVM:内存模型(堆、栈、方法区)、垃圾回收算法(标记-清除、CMS、G1)。

9. 算法与SQL
  • 算法:

    高频题型:链表(虚拟头结点、步长差)、二叉树(遍历、递归)、动态规划(状态转移方程)。

    刷题建议:剑指Offer重点题目(如二叉树镜像、链表反转)需熟练掌握。

  • SQL:

    高频考点:开窗函数(ROW_NUMBER()、RANK())、CASE WHEN条件转换、多表连接优化。

三、开放型问题
  • 大数据处理思想:分而治之(MapReduce)、计算向数据移动(避免数据倾斜)。
  • 未来趋势:

    实时化(Flink、Spark Streaming普及)。

    智能化(AI与大数据结合,如自动调参、异常检测)。

    云原生(Kubernetes调度大数据任务)。

四、备考建议
  1. 分阶段复习:

    基础阶段:巩固Hadoop、Hive、Spark核心原理。

    强化阶段:刷算法题(剑指Offer)、SQL实战(牛客网题库)。

    冲刺阶段:模拟面试(重点准备项目细节、优化方案)。

  2. 项目经验:

    突出技术深度(如Hive调优、Spark任务优化)。

    量化成果(如“通过分区裁剪使查询效率提升30%”)。

  3. 资源推荐:

    算法:LeetCode、剑指Offer。

    大数据:B站TALKDATA视频、牛客网面经。

总结:大数据开发岗位面试注重底层原理(如Shuffle过程、事务隔离)、工程实践(如HQL优化、缓存设计)和算法能力。建议结合项目经验,系统梳理知识点,并针对目标公司(如阿里重底层、字节重实时)调整复习重点。