您的位置:首页 > 大数据 > Hadoop

hdfs读写原理

2018-03-26 08:44 232 查看

hdfs读原理

client调用DFS的open打开希望读取的文件,DFS代表了分布式文件系统的一个实例。

DFS通过rpc,调用namenode机器,确定文件起始块的位置。同一个块,按照重复数,返回多个位置,这些位置按照hadoop集群拓扑结构排序,离client近的排在前面。

第2步返回DFSInputStream,它可以管理datanode和namenode。client调用DFSInputStream的read。

DFSInputStream连接距离最近的datanode,读数据。

到达块末尾,DFSInputStream关闭和该DataNode的连接,寻找下一个块的最佳datanode,依次类推。

hdfs写原理

client调用DFS的create,创建新文件。

DFS通过rpc,调用namenode机器,创建一个空文件,并且为新文件添加一条记录。

第2步返回一个DFSOutputStream,它可以管理datanode和namenode。DFSOutputStream把写的数据切成一个个小的packet,放到data queue

DataStreamer处理data queue的packet,先问namenode,当前packet最适合存储在哪些datanode,比如重复数是3,就找到3个最适合的datanode。packet被写到第一个datanode,第一个datanode会把packet输出到第二个datanode,以此类推。

DFSOutputStream有一个ack queue,里面也是packet,当某个packet对应的应该写入的datanode都表示已经写入了,ack queue会把对应的packet移除。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: