通过漫画轻松掌握HDFS工作原理 带中文理解

HDFS集群的读写流程

HDFS集群三个角色

​ 客户端(提交请求,用户读写数据),NameNode(全局把控,只有一个,协调所有的请求),DataNodes(数据存储,数量可以扩展)

三个角色
client
提交请求
用户读写数据
NameNode
全局把控
只有一个 协调所有的请求
DataNodes
数据存储
数量可以扩展

在这里插入图片描述

把数据写到HDFS集群上

​ 1、发起一个请求 (shell或java API)得到DataNodes的ip

数据大小
blocks大小
副本系数
拆分成blocks
第一个block
拆分成blocks
第二个block
返回结果
DataNode1 DN2 DN3
people
发起请求
shell或java API
client
block默认128MB
place默认3个
block1
block2
NameNode
针对每个block
都返回3个ip

在这里插入图片描述
2、发送第一个block到DataNodes

block1
pipeline方式
pipeline方式
来一点写一点
pipeline方式
来一点写一点
完成
完成
完成
client
DataNode1
接收数据同时
传给下一个DN
DataNode2
接收数据同时
传给下一个DN
DataNode3
最后一个
NameNode

在这里插入图片描述
3、循环发送剩下的blocks,完成后断开流的连接,NameNode记录信息

block2
....
blockn
完成
完成
完成
blocks全部完成后 close
说明
client
DataNodes
NameNode
blockn完成后
存储meta info
meta info
block存储映射关系
block1对应DataNodes
.....
blockn对应DataNodes

在这里插入图片描述
总结一下:

client 拆分大文件为多个blocks,对于每一个block,NameNode提供DataNodes的地址,DataNodes通过pipeline的方式存储数据

从HDFS集群读数据的流程

DataNode是按排序返回的,默认从最近的DataNode去读取

文件名称
block1:at DN x1,y1,z1
block2:at DN x2,y2,z2
block3:at DN x3,y3,z3
从最近的DN下载block n
集合中的第一个DN
DATA for block n
从 block1 循环到 block n
client
NameNode
blocks的集合
每个block的DN的集合
DataNode
client

在这里插入图片描述

HDFS的容错机制

错误类型和错误检测

在这里插入图片描述
在这里插入图片描述

解决读写错误

在这里插入图片描述

解决DateNode错误

在这里插入图片描述

副本放置策略

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值