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

原文地址:https://www.cnblogs.com/shawshawwan/p/9204675.html