zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    mysql 更改字符集
    修改pip源
    git命令
    virtualwrapper使用
    Python环境搭建
    IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository
    Spring4:JDBC
    Spring3:AOP
    Spring2:bean的使用
    Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
  • 原文地址:https://www.cnblogs.com/futurehau/p/6051823.html
Copyright © 2011-2022 走看看