通过漫画轻松掌握HDFS工作原理

1200459-20181104192946610-633986429.jpg
hadoop文件分布式系统(hdfs)
client:人们坐在我面前,请求我去读写数据
namenode:我只有一个,我来指挥这里所有的事情
datanode:我们存储数据,我们很多人,有时候会有几千人

在HDFS集群中写入操作
①用户请求: “ 用户:‘让我们写一些数据吧,client先生,请给我写入200M的数据’;client:‘这是我的荣幸,但是。。。’。”
②块和复制: “client:‘你没有忘记什么东西吧?’;用户:‘噢,对了。。请帮我把数据分为128M一个包,每个包复制到三个地方;”
③一个优秀的客户端总是知道这两件事情:blocksize:大的文件分为许多的包(通常包的大小为64或者128Mb)replication factor:每一个包被复制存储在多个地方(一般是三个)

1200459-20181104192952854-219280310.jpg
①分解文件为包:client:首先我会把这个大的文件分解为许多包
②请求namenode:client:首先让我们为第一个包开始工作吧,namenode先生,请帮我写一个128Mb的包复制三份
③namenode分配datanodes:namenode:复制三份,hmm。。。需要找三个datanode给这个client,该怎样做呢,改天再告诉你
④namenode:给你,伙计。。这是三个datanode的地址,我已经帮你从近到远排好序了;client:谢谢。
⑤client开始写数据:client:我只发送我的数据(这是清单)给第一个datanode;datanode1:我会将数据存储在硬盘里。
⑥datanode1:当我收到数据时,我将相同的数据同时发给下一个datanode

1200459-20181104192958616-2122182906.jpg
①datanode2:我要和刚才那个人一样的做;datanode3:我是最后一个节点
②TA..DA..复制 运输
③当datanode运输完成时:当所有数据(这个包)被写入硬盘,所有的datanode发送报告给namenode
④namenode:包已经成功存储和复制在hdfs中了;client:当我传输完一个包时,我重复相同的步骤来传输剩余的包
⑤当所有包传输完毕:client:当所有包传输完毕,请关闭文件。namenode:关闭情况下,现在我将所有的元信息存储在硬盘上
⑥回顾:client:我将文件分为包;namenode:对于每个包我分配了datanode的地址;datanode:我复制了几份存储了数据

1200459-20181104193004099-555675373.jpg

1200459-20181104193014997-596559312.jpg

1200459-20181104193021435-1112860456.jpg

1200459-20181104193025962-1499842785.jpg

1200459-20181104193030474-1187698482.jpg

1200459-20181104193036543-1193526905.jpg

1200459-20181104193046495-359921470.jpg

转载于:https://www.cnblogs.com/jonty666/p/9905352.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值