2021大数据面试深度解析:Hadoop、Hive、Spark关键点
版权申诉
5星 · 超过95%的资源 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文件中部分面试题的关键知识点解析,完整内容可能包括更详细的解释和答案。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-04-05 上传
2024-03-05 上传
2021-06-05 上传
安全方案
- 粉丝: 2538
- 资源: 3960
最新资源
- 短视频去水印解析HTML源码
- Notes Finder-crx插件
- qiskit-machine-learning:量子机器学习
- mysql_employee_tracker
- winform-toolkit-master.zip
- readable-stream-clone:多次克隆可读流
- jQuery右侧弹出侧边导航栏特效代码
- 长篇大论
- sfseize:Scala中的空间填充曲线
- easyhttpserver:简单轻巧的http服务器
- opcat:开放式港口捕手
- stm32f407vet6的HAL配置串口通信程序
- physics-example-d:一个入门项目,用于将以太物理引擎集成到MonoGame项目中
- pres-respimg-perf-cssconf
- django-spring-2021
- cholladay0816:我的个人资料