Hadoop知识整理

本文深入探讨了Hadoop的分布式存储系统HDFS,包括NameNode和DataNode的工作机制,以及数据读写流程。同时,文章介绍了MapReduce的优缺点、核心思想、编程规范和序列化机制。此外,还讲解了MapReduce框架的InputFormat、数据切片与MapTask并行度的决定机制,以及MapReduce的工作流程和各种InputFormat实现类。
摘要由CSDN通过智能技术生成

Hadoop:

HDFS

 

HDFS(分布式存储)组成:

nn dn 2nn组成

NameNode(nn):只能有一个目录

DataNode(dn):存储多个文件数据的

2nn:是nn的助手,但不是nn的热备份

 

nn和2nn的区别:nn里的Edits文件写满时变成可读文件再新建新的Edits文件,而2nn不能新建新的Edits文件

 

NameNode读取数据流程

由客户端通过FileSystem向NameNode询问A文件,然后NameNode开始查询元数据找到A文件在B的DataNode地址里,挑选一台(就近的,然后随机)的服务器,进行读取数据,然后DataNode开始传输数据给客户端,客户端先在本地缓存然后再写入目标文件。,

 

HDFS写数据流程

1)客户端通过Distributed FileSystem模块NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。

2)NameNode返回是否可以上传。

3)客户端请求第一个 Block上传到哪几个DataNode服务器上。

4)NameNode返回3个DataNode节点,分别为dn1dn2dn3

5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。

6)dn1dn2dn3逐级应答客户端。

7)客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2dn2传给dn3dn1每传一个packet会放入一个应答队列等待应答

8)当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器。(重复执行3-7步)。

NameNode和SecondaryNameNode工作机制

第一阶段启动NameNode

 

Editis:编辑日志,

Fsimage:镜像文件缓存

第一次会在NameNode里加载eidits和fismage,然后从客户端传入元数据的增删改查请求进入NameNode放入editis中,然后fismage每隔一段时间会备份editis中的数据

 

第二阶段启动SecondaryNameNode

 

CheckPoint:询问是否需要把editis中的日志保存到Fisamge中

CheckPoint发送条件:1.定时时间到 2.Editis中数据满了

启动时每隔一段时间会向NameNode发送CheckPoint命令是否需要,如果满足两个条件其中一个就要执行CheckPoint命令,然后editis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xruihao

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值