大数据面试题及答案 本资源摘要信息涵盖了大数据领域中的多个知识点,涉及到HDFS、MapReduce等技术。 一、HDFS运行原理 HDFS(Hadoop Distributed File System)是一种分布式文件系统,运行原理可以分为以下几个方面: 1. HDFS自动保存多个副本,以确保数据的可靠性。 2. 移动计算,数据处理操作可以在数据所在的节点上进行,以减少数据传输的时间和带宽。 3. 缺点是小文件存取占用NameNode内存,写入只支持追加,不能随机修改。 HDFS的整体架构分为三种节点:NameNode(NN)、Secondary NameNode(SNN)和DataNode(DN)。 1. NameNode(NN):负责读写操作,保存metadata(Ownership、Permission、blockinfo)。 2. Secondary NameNode(SNN):负责辅助NameNode合并fsimage和edits,减少NameNode启动时间。 3. DataNode(DN):负责存储数据,每个数据(文件)分割成若干block,每个block默认有三个副本。 二、MapReduce运行原理 MapReduce是一个离线计算框架,过程分为split、map、shuffle和reduce四个阶段。 1. Split:将文件分割,传输到mapper。 2. Map:mapper接收KV形式的数据,经过处理,传到shuffle过程。 3. Shuffle:进行HashPartition或者自定义的partition,会有数据倾斜和reduce的负载均衡问题。 4. Reduce:输出的数据变成了key+迭代器形式的数据,再进行处理。 MapReduce框架由一个master JobTracker和每个集群节点的一个slave TaskTracker共同组成。 1. master JobTracker:负责调度构成一个作业的所有任务。 2. slave TaskTracker:负责执行由master指派的任务。 三、MapReduce优化 1. Combiner优化:在之前的shuffle过程中的map端生成最终溢写文件时,可以通过给每个map显示的设定combiner,来将这个节点的输出优化。 2. 压缩:通过在对数据压缩,来减少网络IO,减少磁盘占用,可以用在三个地方:输入数据压缩、map输出压缩、reduce输出压缩。 3. map的数量:Map task的数量使用split的数量决定的,split的数据越少,每个map task的执行时间就越短。 4. reduce的数量:可以在client设置,增加reduce的数量。 5. 大量小文件的优化:Mapreduce不怕大文件,就怕小文件,可以通过在数据处理的最前端(预处理)采集,将小文件合并成大文件,在上传到HDFS做后续的分析。
剩余35页未读,继续阅读
- 粉丝: 31
- 资源: 4991
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助