Hadoop 速刷:HDFS / MR / YARN / Spark / Hive

发布时间:2026/11/2 6:23:50
Hadoop 速刷:HDFS / MR / YARN / Spark / Hive 一、HDFS1.1 心跳 vs 块报告心跳3s 一次上报DN存活状态、磁盘容量不带块块报告全量 FBR 默认 6h上报 DN 上全部 block 清单增量 IBRIncremental Block Report 块新增/删除即时上报块报告内容blockId、genStamp块副本的版本号NameNode 生成单调递增用来区分同一个 BlockId 下新旧版本的数据块副本。blockId是块的唯一 ID但是同一个 blockId 可能产生多个副本版本靠 genStamp 区分、块长度、状态、storageUUID存储卷 UUID无文件名项目Heartbeat 心跳IBR 增量块汇报FBR 全量块汇报频率3 秒一次块变更时触发新增 / 删除块默认 6 小时一次携带内容DN 存活、磁盘容量不带 block只上报发生变化的 block上报 DN 全部 block 列表数据量很小轻量 RPC小增量非常大大集群开销高核心作用保活、磁盘资源上报NN 下发指令实时同步块变更元数据NN 重建全量块元数据1.2 损坏块读时发现坏块IBR 上报等待 DN 心跳 (3s) 触发副本重建长期未读块扫描器默认21 天才发现坏块全部副本损坏不能自动修复人工fsck 定位 → 检查 DN 是否离线 → 快照 / 备份恢复 → 可移至 lostfound确认无用再 delete禁止fsck / -delete1.3 DN 磁盘满卷标记 full可读不可写集群满读正常写 / 复制 / 均衡失败极端情况 DN 崩溃。处理hdfs dfsadmin -report清理 expunge 清空回收站扩磁盘 / DNbalancer可降副本。1.4 NN 元数据磁盘满edits 写失败NN 直接宕机集群不可用。处理停集群只清日志临时文件严禁删 fsimage/edits释放空间启动迁移 name.dir 到大磁盘控制 fsimage 保留份数。HA 需关注 JournalNode 磁盘。1.5 非‑HA NN 宕机停止集群 → 确认元数据完整 → fsimageedits 恢复 → 启动 NN → 等待 DN 注册上报块报告 → 退出安全模式 → fsck 校验。二、MapReduce2.1 MR 流程Input → Map →Shuffle (Map 端溢写合并 Reduce 端拷贝归并排序)→ Reduce → Output环形缓冲区100MB80% 触发溢写磁盘CombinerMap 端局部聚合减少 IO满足交换律结合律不保证一定执行不能依赖做业务Partition分区数 Reduce 任务数InputSplit逻辑分片Block物理块1 个 split 对应 1 个 MapTask2.2 数据倾斜现象大部分 task 跑完个别 task 很慢卡在 99%。原因key 分布不均大量数据落到同一个 Reduce。MR 方案combiner、加盐salting、自定义分区、业务预处理。2.3 加盐 Salting给热点 key 加随机前缀打散第一轮局部聚合第二轮去盐全局聚合。group‑by两轮聚合join小表需要同步膨胀代价多一轮 Shuffle。2.4 小文件危害大量 MapTaskJVM 与调度开销巨大。解决CombineFileInputFormat、HAR、预处理合并。2.5 MR1 vs MR2(YARN)MR1JobTracker 单点资源调度 任务管理MR2‑YARNRM 管资源NM 管节点每个作业独立 AMMR 只是 YARN 上框架三、YARN任务失败排查RM 页面拿 applicationId区分FAILED / KILLED优先看 AM 日志区分初始化失败 or Task 运行失败Task 失败看 Container stderrKILLED人为kill、内存超限 OOM、NM 本地磁盘满、资源抢占、AM 心跳超时FAILED代码 bug、脏数据、序列化、Shuffle、HDFS 权限 / 路径辅助yarn node -list -all看节点 UNHEALTHY检查队列、HDFS⚠️磁盘区分HDFS 盘业务数据NM 本地盘容器临时、Shuffle 中间文件No space left on device大多是 NM 本地盘满。四、Spark on YARNyarn‑clientDriver 在提交客户端客户端断开 Driver 挂yarn‑clusterDriver 跑 YARN 容器 AM生产推荐高频异常Container killed exceeding memory limitsexecutor 内存 /memoryOverhead 不足排查数据倾斜FetchFailedExceptionShuffle 拉取失败检查 NM 磁盘、节点健康、网络NotSerializableException闭包引用不可序列化对象Driver OOMcollect 拉大量数据、广播大变量五、HiveMapJoin小表做 hash join小表过大内存溢出调阈值或走 Reduce Join脏数据配置参数把转换异常置 null防止任务失败表找不到表名写错、底层 HDFS 数据被删、依赖视图源表删除六、易混点速对比Combiner不改变 key局部聚合不能打散热点Salting 加盐改变 key打散热点两轮聚合FAILED业务逻辑异常KILLEDYARN 强制杀死内存 / 磁盘 / 抢占七、自测QA心跳与块报告区别块报告包含哪些HDFS 全部副本损坏怎么处理DN 磁盘满和 NN 元数据磁盘满现象及处理MR Shuffle 流程Combiner 作用与限制数据倾斜现象、原因加盐原理YARN 任务失败排查步骤FAILED 和 KILLED 区别InputSplit 和 Block 区别小文件危害和处理Spark FetchFailed 异常原因

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询