zoukankan      html  css  js  c++  java
  • Google 三架马车:GFS、BigTable、MapReduce

    一、GFS

    Google File System就是HDFS的前身

    HDFS 参照了GFS的设计理念,大部分架构设计概念是类似的,比如 HDFS NameNode 相当于 GFS Master,HDFS DataNode 相当于 GFS chunkserver

    1.设计目标:

    • 多个客户端可以在不需要额外的同步锁定的 情况下,同时对一个文件追加数据

    一个问题:

    一个 Chunk块为64MB,HDFS中的一个块大小也64MB,但是一般的文件系统中一个磁盘块大小只有512B

    => 那么为什么分布式文件系统中的一个数据块要设置的这么大呢?

     0. 目的是为了最小化寻址开销,

     1. 采用较大的 Chunk 尺寸,客户端能够对一个块进行多次操作,这样就可以 通过与 Chunk 服务器保持较长时间的 TCP 连接来减少网络负载

    2.架构:

    • Master 节点使用心跳信息周期地和每个 Chunk 服务器通讯,发送指令到各个 Chunk 服务器并接收 Chunk 服务器的状态信息。 

    • 客户端并不通过 Master 节点读写文件数据。反之,客户端向 Master 节点询问它应该联系的 Chunk 服务器。 客户端将这些元数据信息缓存一段时间,后续的操作将直接和 Chunk 服务器进行数据读写操作。 

     3.GFS的一致性模型:

    尽量采用追加写入而不是覆盖,Checkpoint,自验证的写入操作,自标识的记录 

    4. 对比HDFS架构:
     
     
     
     
    • master slave model: 只有主人和slave进行主观能动的通信,slave间不会通信。
    • master只会决定哪个slave去做读/写工作,然后client会直接和slave去传输。master只会收到request,master不会传输数据。
    • 怎么存储数据:block of small file
    • 谁负责去将数据拆分成小的blocks? => HDFS client

    二、BigTable

    三、MapReduce

  • 相关阅读:
    2018-5-19-创建不带BOM-的UTF8
    2018-5-19-创建不带BOM-的UTF8
    2019-2-27-win10-uwp-去掉-Flyout-边框
    2019-2-27-win10-uwp-去掉-Flyout-边框
    PHP addChild() 函数
    PHP addAttribute() 函数
    PHP __construct() 函数
    PDOStatement::setFetchMode
    PDOStatement::setAttribute
    自动收集执行计划
  • 原文地址:https://www.cnblogs.com/shawshawwan/p/9204675.html
Copyright © 2011-2022 走看看