大数据面试题之葵花宝典------Hadoop

本文深入探讨了Hadoop的核心组件HDFS和YARN的工作原理,包括读写流程、体系结构、故障恢复及高可用策略。同时,详细解析了MapReduce的执行过程,如combiner和partition的作用,数据倾斜的解决方案,以及优化经验。此外,还涵盖了Hadoop集群的安装配置、资源调度策略等面试关键知识点。
摘要由CSDN通过智能技术生成

1. hdfs读写流程

hdfs写流程
在这里插入图片描述

1、客户端跟namenode通信请求上传文件,namenode检查目标文件是否已存在,父目录是否存在
2、namenode返回是否可以上传
3、client请求第一个 block该传输到哪些datanode服务器上
4、namenode返回3个datanode服务器ABC
5、client请求3台dn中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,
   然后B调用C,将真个pipeline建立完成,逐级返回客户端
6、client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,A收到一个
   packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答
7、当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。

hdfs读流程
在这里插入图片描述

1、client跟namenode通信查询元数据,找到文件块所在的datanode服务器

2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流

3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)

4、客户端以packet为单位接收,现在本地缓存,然后写入目标文件
2. hdfs的体系结构
1、hdfs有namenode、secondraynamenode、datanode组成。为n+1模式
2、NameNode负责管理和记录整个文件系统的元数据
3、DataNode 负责管理用户的文件数据块,文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干
   台datanode上,每一个文件块可以有多个副本,并存放在不同的datanode上,Datanode会定期向Namenode
   汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量
4、HDFS的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行
5、secondraynamenode负责合并日志
3. 一个datanode 宕机,怎么一个流程恢复
Datanode宕机了后,如果是短暂的宕机,可以实现写好脚本监控,将它启动起来。如果是长时间宕机了,
那么datanode上的数据应该已经被备份到其他机器了,那这台datanode就是一台新的datanode了,
删除他的所有数据文件和状态文件,重新启动。
4. hadoop 的 namenode 宕机,怎么解决
先分析宕机后的损失,宕机后直接导致client无法访问,内存中的元数据丢失,但是硬盘中的元数据应该还存在,
如果只是节点挂了,重启即可,如果是机器挂了,重启机器后看节点是否能重启,不能重启就要找到原因修复了。
但是最终的解决方案应该是在设计集群的初期就考虑到这个问题,做namenode的HA。
5. namenode对元数据的管理
namenode对数据的管理采用了三种存储形式:

   1、内存元数据(NameSystem)

   2、磁盘元数据镜像文件(fsimage镜像)

   3、数据操作日志文件(可通过日志运算出元数据)(edit日志文件)
6. 元数据的checkpoint
每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,
并加载到内存进行merge(这个过程称为checkpoint)

namenode和secondary namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时
可以从secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据
7. yarn资源调度流程
1、用户向YARN 中提交应用程序, 其中包括ApplicationMaster 程序、启动ApplicationMaster 的命令、
用户程序等。
2、ResourceManager 为该应用程序分配第一个Container, 并与对应的NodeManager 通信,要求它在这个
   Container 中启动应用程序的ApplicationMaster。
3、ApplicationMaster 首先向ResourceManager 注册, 这样用户可以直接通过ResourceManage 查看
   应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7
4、ApplicationMaster 采用轮询的方式通过RPC 协议向R
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值