Hadoop中HDFS重要源码面试基本概述

本篇总结了Hadooop源码方面几个重要源码面试复述,大数据面试Hadoop必须掌握的源码解析。

NameNode启动源码解析

DateNode启动源码解析

HDFS上传文件源码解析

一、NameNode启动源码解析

1、启动9870端口服务

2、加载镜像文件和镜像日志

3、初始化NN的RPC服务端

4、NN启动资源检查

5、NN对心跳超时判断

6、安全模式

NameNode工作机制

NameNode启动流程源码

NameNode启动源码面试大致复述:

客户端初始化NN的时候,启动了一个9870的网页服务,加载了对应的镜像文件,启动RPC服务,对NN资源的检查,检查目录剩余大小是否低于100m,否则就会警告,对DN心跳超时检测,如果DN上报的信息间隔超过10分钟30s,DN就会挂掉,最后是安全模式,启动的所有block数据块没有达到99%,那么就会进入安全模式

二、DataNode启动源码解析:

1、初始化DataXceiverServer

2、初始化HTTP服务

3、初始化DN的RPC服务端

4、DN向NN注册

5、向NN发送心跳

DataNode工作机制:

 DataNode启动流程:

DataNode启动源码面试大致复述:

客户端初始化DN的时候,启动了一个DataX服务,初始化了Http网页服务,初始化了DN的RPC服务,接收客户端对DN的访问,并向NN进行注册,同时发送心跳信息,默认3s一次

三、HDFS上传文件源码解析

1、create创建过程

        1.1、DN向NN发送创建请求

        1.2、NN处理DN的创建请求

        1.3、DataStreamr启动流程

2、write上传过程

        2.1、向DataStreamrd的队列写数据

        2.2、建立管道之机架感知(块存储位置)

        2.3、建立管道之Socket发送

        2.4、建立管道之Socket接收

        2.5、客户端接收DN写数据应答Response

Hdfs写数据流程:

Hdfs上传源码解析:

Hdfs上传文件源码面试大致复述:

客户端create创建一个NameNode的RPC客户端,发送给NN进行请求,NN进行判断文件路径是否存在,是否有权限,才进行添加,添加后,客户端创建DataStreamer,DataStreamer存储了一个队列dataQueue进行等待,同时DataStreamer又跟NN进行通讯获取可以往哪些节点进行写数据,获取后,才开始真正写数据然后创建一个流,先写chunk,再packet,packet往队列里写,看队列是否满,满就等待,写完之后,packet通知队列已经写完数据,写完之后DataStreamer开始发送数据,每发送完一个数据到DN后,把队列的数据移除,同时在应答队列ackQueue里保存一份发送的数据,DN启动对应的服务来接收对应的数据,接收后持久化到磁盘,同时把数据发送到下一个节点,下一个节点重述上述DN操作,全部节点接收数据后,最后一个节点开始回退应答给上一个节点,最后应答到DataStreamer后,会告诉应答队列删掉数据,如果DN没收齐数据,那么应答队列就会告诉DataStreamer重新发送丢失的数据,直到所有DN接收齐数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条小海龟

谢谢你的打赏,微臣会好好努力达

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值