先上图
概要流程图,已按序号标记。
几个需要注意的点备注下:
1.block 128M:磁盘寻址10ms,磁盘传输速率100M/s。寻址时间占整个传输时间1%效率最高,所以128M大小block效率最高。block设置大小取决于磁盘传输速率。
2.机架感知:第一个副本在Client所在的节点上,如果Client在集群外,则随机选一个;第二个副本和第一个副本位于同一机架随机节点;第三副本位于不同机架随机节点。
3.向DataNode写数据策略:client -> dn1 -> dn2 -> dn3 内网传输速度快、Client只与一个DataNode建立连接。
4.磁盘写入:采用分段加锁和双缓冲机制,大大提高了性能。
5.契约:同一时间只能有一个HDFS客户端来获取NameNode上面的一个契约。然后才可以向获取契约的文件写入数据,未写完可以不断续约。