2021大数据面试深度解析:Hadoop、Hive、Spark关键点

版权申诉
5星 · 超过95%的资源 2 下载量 28 浏览量 更新于2024-07-14 收藏 635KB PDF 举报
"这份PDF文件提供了2021年的大数据开发面试题及答案解析,涵盖了Hadoop、Hive和Spark等多个核心领域,旨在帮助求职者准备面试。" 1. HDFS(Hadoop分布式文件系统)读写流程:在HDFS中,读取文件时,客户端首先查找NameNode获取文件的Block位置信息,然后从最近或负载较低的DataNode节点读取数据。写入文件时,客户端将数据分割成Block,先写入一个临时副本,再通过NameNode协调将副本复制到其他DataNode。 2. HDFS故障处理:如果在读取过程中某块数据损坏,HDFS会尝试从其他副本中读取。在上传文件时,如果DataNode挂掉,NameNode会监控并重新安排复制任务。 3. NameNode启动操作:NameNode启动时会加载元数据信息,包括文件系统树和块信息,并进行一致性检查。 4. SecondaryNameNode:它是NameNode的辅助角色,负责周期性地合并NameNode的编辑日志,以减少NameNode重启时的恢复时间,但不能完全恢复NameNode数据。 5. NameNode数据存储安全:为确保数据安全,通常采用多份备份,如JournalNode集群,以及定期的检查点和元数据持久化。 6. NameNode HA中的脑裂问题:在高可用模式下,如果两个NameNode同时认为自己是主节点,就会发生脑裂。解决方法是通过ZooKeeper等仲裁机制确保只有一个NameNode作为主节点。 7. 小文件过多的危害:过多的小文件会导致HDFS性能下降,因为每个文件都会占用NameNode大量内存。避免方法包括合并文件、使用SequenceFile或MapFile等。 8. HDFS架构:HDFS由NameNode(元数据管理)、DataNode(数据存储)和客户端组成,提供高容错性和高吞吐量的数据访问。 9. MapReduce(MR)工作流程:MapTask负责将输入数据拆分成键值对,进行局部处理;ReduceTask则接收MapTask的输出,进行聚合和计算。 10. MR中shuffle阶段:在Map和Reduce之间,数据通过网络传输,根据key进行排序和分区,为ReduceTask准备输入。 11. shuffle阶段的数据压缩:为了提高数据传输效率和节省存储空间,Hadoop支持在shuffle阶段对数据进行压缩。 12. 规约(Combiner)使用条件:当数据局部性良好且输出结果不影响全局计算时,可以使用规约来减少网络传输的数据量。 13. YARN(Yet Another Resource Negotiator)架构和工作原理:YARN将资源管理和作业调度分离,ResourceManager全局管理集群资源,ApplicationMaster负责单个应用的资源请求和任务调度。 14. YARN任务提交流程:客户端提交应用程序到ResourceManager,申请ApplicationMaster资源,ApplicationMaster与ResourceManager协商启动容器,执行应用程序。 15. YARN资源调度模型:包括Capacity Scheduler、Fair Scheduler和FIFO Scheduler,分别以队列容量、公平性和先进先出策略进行资源分配。 16. Hive内部表和外部表:内部表由Hive管理生命周期,删除时数据也会被删除;外部表仅管理元数据,删除时不删除数据。 17. Hive优化:包括选择合适的文件格式(如ORC、Parquet),创建分区,使用bucketing和sorting,以及合理设置执行引擎参数等。 18. Spark与MapReduce对比:Spark通过RDD(弹性分布式数据集)和DAG(有向无环图)调度,实现内存计算,减少磁盘I/O,从而提高效率。 19. Spark容错机制:通过RDD持久化和检查点,Spark能快速恢复计算状态,即使在节点故障时也能继续执行。 20. Spark的应用场景:适合实时/流处理、迭代计算和交互式数据分析,而MapReduce更适合批处理任务。 以上是PDF文件中部分面试题的关键知识点解析,完整内容可能包括更详细的解释和答案。