分布式数据存储的典型结构

目前比较主流的分布式文件系统结构是主 /从( master/slave) 体系结构,如下图所示,通常包括主控节点 ( 或称元数据服务器,通常会配置一个活动节点和一个备用节点以实现高可用性) 、多个数据节点( 或称存储节点) 和各种大数据应用或者终端用户组成的客户端。分布式存储的目的是将大数据划分为小数据,均匀分布至多个数据节点上,将数据的规模降到单个节点可以处理的程度。

分布式数据存储的典型结构

1 主控节点

主控节点主要负责管理文件系统名字空间( namespace)和管理客户端的访问。常见的命名空间结构有经典的目录树结构如Hadoop 分布式文件系统( Hadoop Distributed FileSystem,HDFS) 等扁平化结构【淘宝分布式文件系统( Taobao File System,TFS)等。为了维护命名空间,主控节点需要存储一些元数据( metadata) ,如文件的所有者和权限、文件到数据节点的映射关系等。除了管理命名空间,主控节点还要集中管理数据节点。除了管理命名空间,主控节点还要对数据节点轮询或接收来自数据节点的定期心跳( heartbeat)来集中管理数据节点。主控节点根据得到的消息可以验证文件系统的元数据;若发现数据节点有故障,主控节点将采取修复措施,重新复制在该节点丢失的数据块; 若有新的数据节点加入或某个数据节点负载过高,主控节点会根据情况执行负载均衡。

2 数据节点

数据节点负责数据在集群上的持久化储存。数据节点通常以机架的形式组织,机架通过交换机连接起来。数据节点响应来自客户端的读写请求,还响应来自主控节点的删除和复制命令。类似于磁盘的结构,在数据节点中也有块( block) 的概念,这是数据读写的最小单位,不过这里的块是一个很大的单元,在很多文件系统中通常为 64 MB,如 google 的 GFS、HDFS和 TFS 等。

对于小文件的储存,可以将多个文件储存在一个块中,并建立索引,提高空间利用率; 对于大文件的储存,则会将数据划分为多个数据块,并作为独立的单元进行储存。为了保证数据的安全性和容错性,分布式文件系统会存储多个数据副本在数据节点上。当数据不可用时,可调用存放在其他节点上的副本。在 HDFS 系统中,副本的基本存储策略是: 在任务运行的节点上存储第一个副本; 在任务所在机架内的其他节点中的某一节点存储第二个副本; 在集群的其他机架中的某一节点存储第三个副本。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值