Hadoop 生态

共 18 题
#

1. YARN 的 ResourceManager/NodeManager/ApplicationMaster 架构如何协作,Capacity Scheduler 与 Fair Scheduler 的资源分配策略有何差异

A NodeManager 直接向 ApplicationMaster 上报全局资源并分配任务
B ApplicationMaster 负责全局资源管理,ResourceManager 负责具体容器启动
C Fair Scheduler 固定每个队列的资源上限,超出即拒绝提交
D Capacity Scheduler 保证队列最低容量并允许超额弹性,Fair Scheduler 按任务数公平分摊并支持抢占 ✓ 正确答案
#

2. HDFS 副本放置策略(机架感知)如何权衡容错与带宽,副本数选择的影响是什么?

A 副本数只影响存储成本,不影响容错能力
B 三个副本都放在同一机架以最大化写带宽
C 副本数越多写入吞吐越高,因为并行写更多节点
D 第 2 个副本放在不同机架以保证机架级故障容错,第 3 个副本与第 2 个同机架以降低跨机架带宽 ✓ 正确答案
#

3. HDFS 小文件问题为何会压垮 NameNode 内存并降低吞吐,合并(HAR/SequenceFile)、归档与对象存储等治理方案如何取舍

A 小文件只增加磁盘占用,不影响 NameNode 内存
B HAR 归档支持实时随机更新任意小文件
C 对象存储与 HDFS 一样受 NameNode 内存上限约束
D 每个文件/块都要占用 NameNode 元数据内存,小文件导致元数据爆炸并放大读任务启动开销 ✓ 正确答案
#

4. HDFS 的 Balancer 与 Mover

A Balancer 用于跨存储层级迁移数据,Mover 用于平衡节点间磁盘
B 二者都只能处理新增节点后的数据,无法处理存储层级
C Balancer 平衡各 DataNode 间数据分布,Mover 按存储策略在 DISK/SSD/ARCHIVE 层级间迁移数据 ✓ 正确答案
D Mover 会删除数据,Balancer 只压缩数据
#

5. HDFS 的 HA(NameNode HA)机制

A Active 与 Standby 各自维护独立日志,不共享
B SecondaryNameNode 就是 HA 的 Standby 且能实时接管
C Active 通过 QJM 将 EditLog 写入 JournalNode,Standby 读取并应用日志保持同步,ZKFC 负责选主与 Fencing ✓ 正确答案
D 故障切换后旧 Active 无需处理,直接重入即可
#

6. HDFS 的架构(NameNode/DataNode)与读写流程

A 读流程中客户端从 NameNode 获取块位置后直接与 DataNode 通信,写流程通过 DataNode 管道流水线复制副本 ✓ 正确答案
B 读写数据都经过 NameNode 转发
C DataNode 保存文件到块的映射关系
D 写流程是客户端把数据复制三份分别发给三个 DataNode
#

7. Hadoop 3.x 的 Erasure Coding(纠删码)

A 纠删码用 RS 编码以数据块+校验块冗余替换多副本,存储开销降至约 1.3 倍,但增加编码/解码 CPU 代价,适合冷数据 ✓ 正确答案
B 纠删码存储开销与 3 副本相同,只是可靠性更高
C 纠删码无需任何校验,随机写也高效
D 纠删码只适合热数据高频读写
#

8. Hadoop 与对象存储(OSS/S3)的协作

A 对象存储有 NameNode 元数据节点,与 HDFS 结构相同
B 对象存储与 HDFS 完全等价,支持原生原子 rename 和 append
C Hadoop 通过 S3A/OSS 连接器访问对象存储,通常用作冷数据/归档层,但其弱文件系统语义与最终一致性需计算引擎适配 ✓ 正确答案
D 对象存储读写吞吐一定高于 HDFS 本地块读取
#

9. Hadoop 生态(Hive/Pig/Sqoop/Flume)的工程位置

A Sqoop 用于日志流采集,Flume 用于关系库数据同步
B Hive 提供类 SQL 数仓查询,Sqoop 负责关系型数据库与 HDFS 之间批量导入导出,Flume 负责日志采集 ✓ 正确答案
C Flume 用 source/sink 直接执行 SQL 查询
D Pig 是现在最主流的 SQL 引擎
#

10. Hadoop 的 Kerberos 安全

A Kerberos 通过 KDC 与票据实现身份认证,服务进程用 keytab 免密认证,主要解决"你是谁"的问题 ✓ 正确答案
B Kerberos 通过明文口令传输实现认证
C Kerberos 负责授权,决定用户能访问哪些数据
D keytab 一旦生成永久有效,无需轮换
#

11. HDFS 块大小(128MB/256MB)的设计依据与调整影响(寻道时间 vs 传输时间)

A 块大小仅由磁盘容量决定,与吞吐无关
B 块越大,NameNode 元数据量越多
C 块大小设计使传输时间远大于寻道时间以提升吞吐,但块过大降低单文件并行度并减少元数据量 ✓ 正确答案
D 块越小传输吞吐越高
#

12. MapReduce 的推测执行(Speculative Execution)机制与参数

A 推测执行为疑似慢任务在空闲节点启动备份任务,取先完成者结果,但副作用任务或数据倾斜场景下常需关闭 ✓ 正确答案
B 推测执行为所有慢任务无条件启动备份,无副作用
C 推测执行只针对 reduce 任务
D 推测执行会重算已提交的数据,必然导致错误
#

13. HDFS 的 Federation(元数据分片)

A Federation 直接解决 NameNode 单点可用性问题
B Federation 后文件系统全局视角不受影响
C Federation 让所有 NameNode 共享同一份元数据
D Federation 通过多 NameNode 分片元数据解决单一 NameNode 内存容量瓶颈,但每个 Namespace 仍需单独 HA ✓ 正确答案
#

14. Hive SQL 从解析、优化到生成 MapReduce/Tez 任务的执行流程是怎样的,数据倾斜与分区裁剪有哪些常见优化

A Hive 直接翻译 SQL 为 MapReduce 任务,无优化阶段
B 数据倾斜只能通过增加 reduce 数量根治
C 谓词下推一定会把过滤条件下推到数据源之外
D 分区裁剪通过只读取符合过滤条件的分区目录减少扫描量,数据倾斜可用两阶段聚合/加盐/广播 join 治理 ✓ 正确答案
#

15. MapReduce 的 Shuffle/Sort 流程

A Shuffle 只在 Map 端进行,不涉及网络
B Map 端只负责输出,不排序
C Reduce 端直接从磁盘随机读取所有 map 输出
D Map 端溢写时按分区划分并内部排序,Reduce 端拉取后按 key 归并排序并分组,这是 Shuffle 的主要 IO 环节 ✓ 正确答案
#

16. hadoop fs 与 hdfs dfs 的差异

A `hdfs dfs` 支持对象存储,`hadoop fs` 只支持 HDFS
B `hadoop fs` 是通用文件系统命令,可操作多种存储,`hdfs dfs` 面向 HDFS,二者在多数版本功能趋同 ✓ 正确答案
C 二者完全无关,无法互相替代
D `hadoop fs` 只能读不能写
#

17. HDFS 的读写流程,客户端、NameNode、DataNode 与副本管道如何协作?

A 写数据时客户端把数据分别发给每个 DataNode,各自独立存储
B 所有读写数据都流经 NameNode
C 客户端通过管道把数据链式转发给多个 DataNode 复制副本,读时就近直连 DataNode,NameNode 只处理元数据 ✓ 正确答案
D 读流程必须从所有副本各读一遍
#

18. NameNode 的 FsImage 与 EditLog 合并(Checkpoint)机制

A EditLog 可以无限增长,无需处理
B Checkpoint 把 FsImage 与累积 EditLog 合并成新 FsImage 并清空 EditLog,控制日志规模、加快启动,HA 下由 Standby 执行 ✓ 正确答案
C FsImage 记录每笔增量修改,EditLog 保存全量快照
D Checkpoint 只删除数据不合并元数据