上篇Hadoop之HDFS原理及文件上傳下載源碼分析(上)樓主主要介紹了hdfs原理及FileSystem的初始化源碼解析, Client如何與NameNode建立RPC通信。本篇將繼續(xù)介紹hdfs文件上傳、下載源解析。
文件上傳
先上文件上傳的方法調(diào)用過(guò)程時(shí)序圖:
其主要執(zhí)行過(guò)程:
FileSystem初始化,Client拿到NameNodeRpcServer代理對(duì)象,建立與NameNode的RPC通信(樓主上篇已經(jīng)介紹過(guò)了)
調(diào)用FileSystem的create()方法,由于實(shí)現(xiàn)類(lèi)為DistributedFileSystem,所有是調(diào)用該類(lèi)中的create()方法
DistributedFileSystem持有DFSClient的引用,繼續(xù)調(diào)用DFSClient中的create()方法
DFSOutputStream提供的靜態(tài)newStreamForCreate()方法中調(diào)用NameNodeRpcServer服務(wù)端的create()方法并創(chuàng)建DFSOutputStream輸出流對(duì)象返回
通過(guò)hadoop提供的IOUtil工具類(lèi)將輸出流輸出到本地