星空网 > 软件开发 > Java

Hadoop之HDFS文件读写过程

一、HDFS读过程

      1.1 HDFS API 读文件 

Hadoop之HDFS文件读写过程Hadoop之HDFS文件读写过程
1 Configuration conf = new Configuration(); 2 FileSystem fs = FileSystem.get(conf); 3 Path file = new Path("demo.txt"); 4 FSDataInputStream inStream = fs.open(file); 5 String data = inStream.readUTF(); 6 System.out.println(data); 7 inStream.close(); 

View Code

       1.2 HDFS读取文件过程

       1.初始化FileSystem,然后客户端(client)用FileSystem的open()函数打开文件
       2.FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。
       3.FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据。
       4.DFSInputStream连接保存此文件第一个数据块的最近的数据节点,data从数据节点读到客户端(client)
       5.当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。
       6.当客户端读取完毕数据的时候,调用FSDataInputStream的close函数。
       7.在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。
       8. 失败的数据节点将被记录,以后不再连接。【注意:这里的序号不是一一对应的关系】

       1.3HDFS读取文件过程图

    Hadoop之HDFS文件读写过程

    

二、HDFS写过程
 
       2.1 HDFS API 写文件  
Hadoop之HDFS文件读写过程Hadoop之HDFS文件读写过程
1 Configuration conf = new Configuration(); 2 FileSystem fs = FileSystem.get(conf); 3 Path file = new Path("demo.txt"); 4 FSDataOutputStream outStream = fs.create(file); 5 outStream.writeUTF("Welcome to HDFS Java API!!!"); 6 outStream.close(); 

View Code
 2.2 HDFS写文件过程   

 

       1.初始化FileSystem,客户端调用create()来创建文件
       2.FileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件,元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。
       3.FileSystem返回DFSOutputStream,客户端用于写数据,客户端开始写入数据。
       4.DFSOutputStream将数据分成块,写入data queue。data queue由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点放在一个pipeline里。Data Streamer将数据块写入pipeline中的第一个数据节点。第一个数据节点将数据块发送给第二个数据节点。第二个数据节点将数据发送给第三个数据节点。
       5.DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。
       6.当客户端结束写入数据,则调用stream的close函数。此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功。最后通知元数据节点写入完毕。
       7.如果数据节点在写入的过程中失败,关闭pipeline,将ack queue中的数据块放入data queue的开始,当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除。失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点。元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。
       2.3HDFS写文件过程图

Hadoop之HDFS文件读写过程        

 


 
 
 



原标题:Hadoop之HDFS文件读写过程

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

新手如何玩转Ins广告?(下):https://www.ikjzd.com/articles/139745
汇率暴涨怎么办?人民币外贸收汇终极指南!:https://www.ikjzd.com/articles/139746
独立站新手卖家如何高效选品 轻松起步?:https://www.ikjzd.com/articles/139747
亚马逊卖家如何解决选品难题?_亚马逊选品技巧:https://www.ikjzd.com/articles/139748
​2021年家居建材跨境贸易如何保持因疫情带来的临时红利:https://www.ikjzd.com/articles/139749
海关备案-商标专利申请之后的保险箱:https://www.ikjzd.com/articles/13975
在古巴做游轮 古巴旅游项目:https://www.vstour.cn/a/363194.html
西藏旅游攻略自驾游需要多少天 去西藏旅游自驾游要多久时间:https://www.vstour.cn/a/363195.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流