一、客户端发送请求
客户端执行上传文件的命令:hdfs dfs -put a.avi /movie
。
二、DFSClient.java 创建 DistributedFileSystem
请求首先被 DFSClient.java 这个类获取到,由该类创建 DistributedFileSystem 对象。
三、建立 RPC 通信,获得 NameNode 的代理对象
DistributedFileSystem 建立与 NameNode 之间的 RPC 通信,并且得到一个 NameNode 的代理对象:NameNodeProxies
。
NameNodeProxies 是个复数,是因为我们为了保证 HA(高可用),会使用多个 NameNode 节点。
四、请求创建文件的元信息
由 NameNodeProxies 去请求 NameNode 创建文件的元信息。
五、创建文件的元信息
NameNode 创建文件的元信息,元信息的内容如下:
{
"文件名" : "a.avi",
"路径" : "/movie"<