• 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.

  • 相关阅读:
    HTML5 图片预览
    ubuntu JAVA 安装
    跟着老猫来搞GO内建容器Map
    面试造火箭系列,栽在了cglib和jdk动态代理
    跟着老猫来搞GO,"面向对象"
    跟着老猫来搞GO内建容器slice
    跟着老猫来搞GO,基础进阶
    JavaScript中利用doucument.writeline()方法预生成代码的小技巧
    javascript学习记录
    你的逻辑性强吗?
  • 原文地址:https://www.cnblogs.com/futurehau/p/6051823.html
Copyright © 2020-2023  润新知