其他分享
首页 > 其他分享> > 大数据-3:HDFS详解

大数据-3:HDFS详解

作者:互联网

文章目录

1. 简介

在这里插入图片描述

1. 客户端:

2. Namenode

3. Datanode

4. Second Namenode

2. 工作机制:

在这里插入图片描述

2.1 数据存储:

Client将数据按block切好后,NN接收到它的需求:三备份,128M数据块
NN返回给Client的是三个DN的地址,且已经按距离生序排列好;给三个原因是防止列表中的地址对应的DN宕机

Client与DN
client可与dn在一起:
第一个肯定会在和client同一位置的dn上。由于迁移计算的成本要明显低于迁移数据的成本,调度计算的本质是开启程序;第二,三个副本是在不同机架上的两个dn上

client在集群的外部时:
首先是机架,一个机架包含多个dn,机架一般类似于机房,包含多个主机。若设置的是保存三个副本,存储时的策略一般是会随机选择一个机架的dn存储,然后再选择一个其他机架的两个dn进行存储。即包含机架的冗余机制和跨dn的冗余机制。

DN上一般是第一个节点首先进行存储,存储完成后再去给其他节点复制。客户端只给第一个DN发送数据和列表;
完成后各个DN会反馈给NN写入完成的信号
这样,一个数据块即完成了在HDFS中的存储,接下来重复对其他数据块的操作;
当所有数据块的存储完成后,NN永久储存元数据,并关闭连接

2.2 读取数据

客户端发出读取数据请求给NN
NN返回给客户端所要文件的所有数据块的列表,以及每个数据块对应的DN的列表(从远到近)
客户端在拿到需要下载的数据块s后,也拿到每个数据块存储的DN(列表由近到远)后,开始按顺序下载

2.3 容错

如果DN挂了,后者里面没有数据,或者数据被损坏时,就会涉及HDFS的容错:故障类型和其监测方法
故障类型:节点故障,通讯故障(DN到NN失联),数据损坏(网络传送中损坏或磁盘损坏)
针对故障类型的故障监测:
节点故障:NN挂了,整个集群就挂了。对于DN,每3秒给NN发送一个心跳检测,10分钟没收到消息,NN判定DN宕机
网络故障:每当发送数据时,接受者都会回复一个应答信号;如果多次没有收到应答信号,发送者就会认为主机已经挂掉,或者发生了网络错误;
数据损坏:NN在DN硬盘上存储数据的时候,也会存储校验和,DN也会校验检验和确保数据完整;
硬盘故障:所有DN定时发送数据块报告给NN,在发送数据块报告之前,DN会自己检测检验和是否正常,损坏或者不匹配的数据块信息不会发送给NN,NN通过数据块报告可知道哪些数据块挂掉了。
即DN发送两种信号:心跳信号证明活着,数据块报告让NN知道损坏的数据块

标签:DN,HDFS,存储,NN,故障,详解,数据
来源: https://blog.csdn.net/Fancyll_Lee/article/details/120444698