HDFS Architecture

Two kind of database architectures:

  • Master slave model

    High consistency

    Simpler design

    Single master node is not robust

  • Peer peer model

    Distributes read write load

    One node down won’t affect others

    Low consistency

HDFS使用的是Master slave model.

Master slave model 模型总览:

文件读取的时候,Master并不会转移数据,这会导致bottleneck。master只会决定哪一个slave node读写,然后client直接与那个slave node 通信。

文件存储是分block来存储的, HDFS Client负责文件的分割

那么,master的作用是什么呢?很自然,master需要知道文件存储在哪个slave node,从哪里去读取文件。master通过metadata来实现。

Metadata 包含 blocks 和 blocks的位置。

如上图所示的结构,如果一个slave节点宕机了的话,就会造成数据丢失,为了避免这一情况,需要进行Data replication。一般存储三份。

那么,如果master node宕机了呢?工业上是每隔一个小时就把master node 上的数据copy到checkpoint node上。

接下来看看文件的读写操作。

写操作:

由于每隔文件都需要写三次,那么如果client直接往三个node写的话,将会造成bottleneck。所以,写操作的流程如下:

读操作:

数据存储了三份,那么client读取的时候,是选择和client最接近的那个datanode.master会根据datanode与client的距离给三份数据提供一个order.

原文地址:https://www.cnblogs.com/futurehau/p/6051823.html