大数据面试深度解析:Hadoop、HDFS、MR、Yarn、Hive与Spark

需积分: 5 3 下载量 18 浏览量 更新于2024-07-09 收藏 683KB PDF 举报
"这份资料涵盖了2021年的大数据面试关键知识点,包括Hadoop、Flink、MapReduce、YARN、Hive和Spark等多个领域的核心概念和技术。" **Hadoop** 1. **HDFS读写流程**: HDFS的读取流程始于客户端通过NameNode获取文件块的位置信息,然后连接到对应的DataNode读取数据。写入时,客户端先将数据分成块,然后并行地写入多个DataNode,并在所有副本都成功写入后返回确认。 2. **HDFS故障处理**: 如果读取时某个块损坏,HDFS会尝试从其他副本读取。在上传文件时,如果DataNode挂掉,HDFS会尝试在其他可用节点上复制块。 3. **NameNode启动操作**: NameNode启动时会加载元数据,包括文件系统命名空间和文件块映射信息,并进行一致性检查。 4. **SecondaryNameNode**: 它主要负责辅助NameNode合并编辑日志(edits log),以减少NameNode重启时的恢复时间。但不能完全恢复NameNode数据,因此需要定期备份NameNode的元数据。 5. **NameNode HA与脑裂**: 在NameNode高可用(HA)设置中,脑裂是指集群同时认为两个NameNode是活动的,可能导致数据不一致。解决方法是配置心跳检测和快速故障切换机制。 **MapReduce** 6. **MapTask机制**: MapTask负责对输入数据进行分割,执行map函数,生成键值对,并进行本地排序。 7. **ReduceTask机制**: ReduceTask接收MapTask输出的分区数据,执行reduce函数来聚合结果。 8. **shuffle阶段**: 这是MapReduce中的数据交换阶段,包括分区、排序和合并,确保相同键的值被送到同一个Reduce任务。 9. **shuffle阶段数据压缩**: 为了节省网络带宽,MapReduce支持在shuffle阶段对数据进行压缩传输。 **YARN** 10. **YARN架构和工作原理**: YARN将资源管理和应用程序管理分离,ResourceManager负责全局资源调度,ApplicationMaster管理单个应用,NodeManager则在每个节点上执行任务。 11. **YARN任务提交流程**: 应用提交到ResourceManager,然后ResourceManager启动ApplicationMaster,ApplicationMaster再向NodeManager请求执行任务。 12. **YARN资源调度模型**: 包括FIFO、Capacity Scheduler和Fair Scheduler,分别按提交顺序、预留容量和公平分配资源。 **Hive** 13. **内部表和外部表**: 内部表由Hive管理生命周期,删除时数据也会被删除;外部表仅管理元数据,删除时数据保留。 14. **Hive索引**: Hive不支持传统数据库的索引,但可以通过Partitioning、Bucketing、Sorting和Indexing等方式提高查询性能。 15. **Hive调度**: 可通过Hive的队列和调度器如CapacityScheduler进行作业调度。 **Spark** 16. **Spark效率优势**: Spark利用内存计算、DAG执行图和弹性分布式数据集(RDD)实现高效的并行计算,减少磁盘I/O。 17. **Spark容错机制**: 通过RDD的血统(lineage)记录操作历史,当数据丢失时,可以通过重做这些操作来恢复。 18. **RDD持久化**: RDD可以缓存到内存或磁盘,加速重复计算。 19. **Spark优化**: 包括合理分区、数据压缩、使用宽依赖、调整executor配置等。 **总结** 这份面试宝典深入探讨了大数据领域的重要技术,不仅有助于理解各组件的工作原理,也为面试准备提供了全面的参考资料。对于想要在大数据领域求职的人来说,掌握这些知识点将极大提升面试竞争力。