作业一: 默写读写原理
1.客户端通过DistributedFile System模块向Name Node发出上传文件请求。
2.Name Node会判断文件是否存在,目录是否存在,Name Node返回结果给客户端。
3.客户端请求第一个块上传到哪个DATa Node上。
4.NameNode 通过计算将节点返回,计算式通过距离,和负载均衡等情况。
5.客户端通过FDSataOutPutStream模块请求u返回节点的串行数据通道。
6.节点逐级回复客户端
7.客户端从一个节点开始上传块,以packet(64kb),io流的形式传递,第一个节点罗盘数据后,再向后传递,直到最后一个落盘完毕,向前逐级应答。
8.当传输完成以后,客户端告诉Name Node,我已经上传完毕,可以开始下一轮。(Name Node保存数据的目录信息是由DataDode心跳汇报的)
1.客户端通过DistributedFile System向Name Node请求下载文件。
2.Name Node将数据块所在的DATa Node的地址返回给客户端。
3.客户端根据就近原则请求DATa Node上的数据。
4.DataDode将数据传输给客户端,packet,io流。如果文件的多个数据块都在这个节点上,就一起传输。
5.用户以packet为单位通过FSDatalnputStream接受数据,并在本地拼接出结果文件,如果文件的数据块来自多个不同的节点,并不会并行读,而是一次一次读取。
作业二:
默写NameNode,DataNode,Secondary Name Node工作原理
Name Node工作原理:
(1)创建一个新的Fsimage(数据存储的目录)和Edits(客户端操作)文件。不是第一次启动,直接加载到内存(元数据在内存中操作增加速度)中
(2)客户端发出对原数据进行操作请求。
(3)NameNode记录操作数的日志,更新。先更新的是因为怕断电导致数据丢失。
(