# 1. 大数据测试与常规功能测试在数据规模、数据依赖与执行时间上的本质差异是什么? A 大数据测试可以逐条断言所有数据,保证全覆盖 B 大数据测试与常规功能测试的唯一区别是数据量更大,方法完全相同 C 大数据测试只需要验证逻辑正确性,无需关注数据规模与执行时间 D 大数据测试因数据规模大、执行时间长、依赖链复杂,通常采用分层抽样、对账与血缘裁剪等策略而非穷举断言 ✓ 正确答案
# 2. Hive 测试中如何构造"小表驱动大表"的数据分布,验证 MapJoin 与数据倾斜场景? A 只要数据量大就一定会触发 MapJoin B 小表能装入内存时倾向于触发 MapJoin,测试可用 EXPLAIN 断言执行计划,并用倾斜 key 构造验证倾斜修复 ✓ 正确答案 C 数据倾斜与小表无关,无需构造 D MapJoin 无法通过 EXPLAIN 验证
# 3. Hive 自定义函数(UDF/UDAF/UDTF)的测试,入参边界、Null 处理、类型转换与性能验证 A 只需验证函数在正常输入下能返回正确结果即可 B 自定义函数不需要考虑 Null 输入 C 性能验证对 UDF 不重要 D UDF 应覆盖入参边界、Null 处理、类型转换,UDAF 覆盖聚合与空组场景,并验证大数据量下的性能与内存稳定性 ✓ 正确答案
# 4. Hadoop 集群测试中,NameNode 高可用、数据节点故障与机架感知如何纳入故障测试范围? A 只需测试 NameNode 高可用,无需关注数据节点故障 B 应通过故障注入测试 NameNode 切换、数据节点故障后的副本恢复与机架感知副本放置策略,以验证集群可用性与数据可靠性 ✓ 正确答案 C 数据节点故障后副本无法自动恢复 D 机架感知与故障恢复无关
# 5. 如何验证 Hive 分区分桶表的数据完整性(分区丢失、桶内数据错位)? A 只需检查分区数量即可 B 应对比元数据与实际文件目录验证分区无丢失,并校验分桶数、桶内分布与同 key 落桶一致性来防止数据错位 ✓ 正确答案 C 桶内数据错位不影响查询结果 D 分区丢失无法通过元数据与文件系统对比发现
# 6. 大数据任务的"数据血缘"测试,如何断言上下游表之间的行数、去重口径一致? A 血缘测试只需确认表之间存在引用关系即可 B 血缘测试与行数对账无关 C 去重口径无需在血缘测试中验证 D 应通过解析血缘识别上下游,并对行数、去重键与去重口径做 join 对账,断言上下游数据一致无丢失无重复 ✓ 正确答案
# 7. Hive 任务的测试要点,SQL 逻辑正确性、UDF 边界、分区裁剪与数据倾斜如何验证? A SQL 逻辑用 golden 用例断言、UDF 覆盖边界与 Null、分区裁剪用 EXPLAIN 断言、数据倾斜构造分布验证修复,四者缺一不可 ✓ 正确答案 B 分区裁剪不影响性能,无需验证 C 只需要验证 SQL 在正确输入下结果正确 D 数据倾斜无法构造与测试
# 8. 大数据测试的数据构造,如何生成海量测试数据(模拟分布/边界/异常),与生产数据脱敏的配合? A 应通过放大生成海量数据、模拟分布/边界/异常覆盖特殊场景,并用不可逆脱敏保证业务可用,兼顾规模、覆盖度与安全性 ✓ 正确答案 B 脱敏后的数据无需保持业务可用与分布形态 C 测试数据不需要模拟异常与边界 D 只能用生产数据脱敏,不能合成
# 9. 小文件问题对 Hive 任务的影响测试,小文件数量、合并策略与读取性能的关系如何验证 A 合并后无需验证数据完整性 B 小文件数量不影响性能 C 应量化不同文件数下的读取耗时与 Map 任务数,验证合并策略能减少文件数并提升性能,同时确认合并不丢失数据 ✓ 正确答案 D 合并策略一定能带来性能提升,无需对比
# 10. 大数据任务的回归策略,如何用抽样、增量与血缘裁剪全量重跑的范围? A 每次变更都必须全量重跑所有数据 B 抽样回归无法发现任何问题 C 可通过抽样快速回归、增量聚焦变更数据、血缘裁剪确定受影响下游范围,从而缩小全量重跑范围并控制成本 ✓ 正确答案 D 血缘与回归范围无关
# 11. Hive 动态分区与静态分区的测试,动态分区写入的模式匹配、分区数上限与同名分区覆盖行为如何验证? A 动态分区与静态分区完全一样 B 分区数超限不会报错,可忽略 C 同名分区覆盖行为无需验证 D 应验证动态分区列与目录的模式匹配、分区数上限的正确拦截与 INSERT OVERWRITE 对同名分区的覆盖行为,防止分区爆炸与数据被覆盖 ✓ 正确答案
# 12. 不同执行引擎的结果一致性,同一 Hive SQL 在 Tez、Spark 与 MR 引擎下的结果与性能差异如何回归? A 同一 SQL 在不同引擎下结果必然完全一致 B 引擎差异不影响结果,无需回归 C 应分别执行并对账行数与聚合值,容忍浮点精度差异,重点验证聚合顺序、NULL 处理与排序等差异点,并对比性能 ✓ 正确答案 D 浮点精度差异一定是 bug
# 13. HBase 的读写模型测试与 Hive 批处理测试在验证点上有什么不同? A HBase 也主要用 SQL 对账验证 B 两者的验证点完全相同 C HBase 侧重 RowKey 设计、读写延迟、并发与一致性,Hive 侧重 SQL 逻辑、分区聚合与批处理正确性,验证点与手段不同 ✓ 正确答案 D Hive 更关注点查延迟
# 14. Hadoop 生态的集成测试,HDFS 读写、YARN 资源、数据压缩格式(Parquet/ORC)如何验证? A 只需验证 HDFS 读写即可 B 应验证 HDFS 读写完整性、YARN 资源调度与限制、Parquet/ORC 的读写正确性与压缩/裁剪性能,验证组件协同 ✓ 正确答案 C 压缩格式不影响查询 D YARN 资源不足时任务必然成功
# 15. Hive 向量化执行与执行计划差异对结果的影响,如何用 EXPLAIN 断言计划变更? A 应验证向量化开闭前后结果一致,并用 EXPLAIN 断言关键算子与计划变更,防止性能优化与计划变化引入回归 ✓ 正确答案 B EXPLAIN 无法反映执行计划 C 向量化执行不会改变结果,无需验证 D 计划变更不会影响结果和性能
# 16. Hive SQL 的静态检查,表/字段存在性、分区裁剪与权限的自动校验如何实现? A 静态检查只能检查语法错误 B 表/字段存在性只能运行期发现 C 分区裁剪无法静态校验 D 通过解析 AST 与元数据、权限系统比对,可自动校验表/字段存在性、分区裁剪与权限,作为 CI 质量门禁提前拦截错误 ✓ 正确答案
# 17. 大数据测试中的空值与脏数据分布模拟,如何构造贴近生产的异常数据样本? A 只需注入大量 NULL 即可贴近生产 B 应根据生产统计按比例构造空值、格式错误、超长、重复、越界等脏数据,使其占比与类型贴近真实,以验证异常分支处理 ✓ 正确答案 C 脏数据比例无需与生产一致 D 异常样本无法触发异常分支
# 18. Hive Join 类型的边界测试,inner、left、right、full、semi 与 anti join 在空表、NULL 键与重复键下的结果如何断言? A 各 join 类型在 NULL 键下结果相同 B 应针对 inner/left/right/full/semi/anti 分别在空表、NULL 键与重复键下构造已知输入输出断言行数与列值,覆盖每种 join 的边界语义 ✓ 正确答案 C semi join 与 inner join 在 NULL 键下行为一致 D 空表下所有 join 结果一致