专业的IT培训机构
|
腾科IT教育集团
Prometric考试中心
VUE考试中心
关于我们
深圳校区
切换校区
集团
广州
首页
课程中心
新闻中心
学员感言
开班计划
认证考试
名师汇聚
网络
操作系统
数据库
软件开发
专题课程
思科专题
华为专题
红帽专题
甲骨文专题
微信
电话
复制成功
微信号:
togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
腾科新闻
首页
>
腾科新闻
>
HDFS如何写数据
发布时间:
2022-11-24
HDFS如何写数据
,如图1所示,HDFS进行写数据描述如下。
图1 HDFS写数据流程图
(1)客户端通过调用DistributedFileSystem的Create方法,创建一个新的文件。
(2)DistributedFileSystem通过RPC(远程过程调用)调用NameNode,去创建一个没有Blocks关联的新文件。创建前,NameNode会做各种校验,如文件是否存在,客户端有无权限去创建等。如果校验通过,NameNode就会记录下新文件,否则就会抛出lO异常。
(3)前两步结束后会返回FSDataOutputStream的对象,和读文件的时候相似,FSDataOutputStream被封装成DFSOutputStream, DFSOutputStream可以协调NameNode和DataNode。客户端开始写数据到DFSOutputStream,DFSOutputStream会把数据切成一个个小Packet,然后排成队列Data Queue。
(4)DataStreamer会去处理接受Data Queue,它先问询NameNode这个新的Block最适合存储在哪几个DataNode里,如重复数是3,那么就找到3个最适合的DataNode,把它们排成一个Pipeline。DataStreamer把Packet按队列输出到Pipeline的第一个DataNode中,第一个DataNode又把Packet输出到第二个DataNode中,以此类推。
(5)DFSOutputStream还有一个队列叫Ack Queue,也由Packet组成,等待DataNode收到响应,当Pipeline中的所有DataNode都表示已经收到的时候,这时才会把对应的Packet包移除掉。
(6)客户端完成写数据后,调用Close方法关闭写入流。
(7)DataStreamer把剩余的包都刷到Pipeline里,然后等待Ack信息,收到最后一个Ack后,通知DataNode把文件标示为已完成。
分享到:
QQ空间
新浪微博
腾讯微博
人人网
微信
更多
上一篇:
存在XSS攻击风险的功能点
下一篇:
linux磁盘分区
联系电话:18922156670
华为认证
思科认证
oracle认证
红帽认证
常见问题
2022年思科认证考试费多少钱?
2022年思科认证考试报名时间是?
思科认证怎么报名考试?
思科认证培训多少钱?
2022年华为认证考试费多少钱?
2022年华为认证考试报名时间是?
华为认证怎么报名考试?
华为认证培训多少钱?
2022年红帽认证考试费用多少钱?
2022年红帽考试报名时间是?
怎么报名红帽认证考试?
红帽培训多少钱?
Oracle认证考试官方费用是多少?
2022Oracle认证报考条件是什么?
2022年Oracle认证考试时间是?
Oracle dba认证培训费用是多少?
Java零基础可以学习吗?
UI设计师培训多少钱?
HTML5前端开发难学吗?
立即咨询
联系电话:18922156670
在线咨询
在线咨询
×
您好,请问有什么可以帮您?我们将竭诚提供最优质服务!
QQ咨询
下次再说