微博上看到的一张关于HDFS的图片,形象生动的解释的HDFS的工作原理,再确切一点是 写操作的的基本过程:

1 一个集群中只有一个NameNode,可以有多个DataNodes


数据的位置存储信息


3 得到位置信息后,client端开始写数据


将数据分块, 并存储为多份(一般为3份),放在不同的datanode 节点!


5 client 先将数据写到第一个节点,在第一个节点接收数据的同时,又将它所接收的数据推送到第二个,第二个推送到第三个节点,如果有多个节点,依次类推。。


6 从图中可以知道 NameNode 不参与 数据块的IO的!相当于mongodb 集群中的 mongos 和config 服务器的双重角色!