加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 海宁网 (https://www.hainingwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据存储技术:分布式篇

发布时间:2022-11-23 11:17:19 所属栏目:大数据 来源:
导读:  当需要存储的数据量变得很大、一台机器的磁盘无法存储下时,就需要将这些数据存储到多台机器上。

  数据分布

  将数据分布到不同的节点上的方式有:

  很多人可能会觉得总控节点会成为分布式系
  当需要存储的数据量变得很大、一台机器的磁盘无法存储下时,就需要将这些数据存储到多台机器上。
 
  数据分布
 
  将数据分布到不同的节点上的方式有:
 
  很多人可能会觉得总控节点会成为分布式系统的瓶颈,任务P2P架构(无中心节点)架构更有优势。然而事实并非如此,主流的分布式存储系统大多带有总控节点,因为使用总控节点架构更易于维护、且也能够支持成千上万的集群规模。关于总控节点的瓶颈问题优化,后面会展开讲。
 
  总控节点主要用于全局调度、元数据管理(分片位置信息等)。

  当然,也有很多存储系统是无中心架构的大数据分布式存储,比如Redis
 
  数据节点高可用
 
  数据备份/复制
 
  在分布式存储系统中大数据分布式存储,随着集群规模变得越来越大,故障发生的概率也越来越大。大规模集群每天都有故障发生,其中出现故障最高概率的是:单机故障、磁盘故障。
 
  为了保证分布式存储系统的高可靠和高可用,需要对每个节点的数据进行多副本复制备份:
 
  主备副本之间的数据复制,主要通过同步操作日志(Commit Log)实现:主副本首先将操作日志同步到备副本,备副本回放操作日志,完成后通知主副本。(关于操作日志,更多可以阅读《数据存储技术:单机篇》)
 
  分布式存储系统通过复制协议将数据同步到多个存储节点,并确保多个副本之间的数据一致性。
 
  复制协议分为2种:强同步复制、异步复制。
 
  根据CAP原理,一致性和可用性是矛盾的。存储系统设计时,需要在一致性和可用性之间权衡。根据实际需求,有以下几种模式可用选择:
 
  同构复制
 
  通常情况下,数据备份时,会将存储节点分为若干组,每个组内的节点服务完全相同的数据,其中有一个节点为主副本节点,其他节点为备副本节点。
 
  由于同一个组内的节点服务相同的数据,这样的系统成为同构系统。
 
  集中存储与分布式存储_大数据数据存储_大数据分布式存储
 
  异构复制
 
  同构系统的问题在于:当某个副本节点发生故障,系统需要自动增加新副本,这时需要迁移的数据量太大。假设每个存储节点服务的数据为1TB,内部传输带宽限制为20MB/s,那么增加一个副本节点,需要的拷贝数据时间为1TB / 20MB/s = 50000s,大约十几个小时;由于拷贝数据的过程中存储节点再次发生故障的概率很高,所以这样的架构很难做到自动化,不适用于大规模分布式存储系统。
 
  异构系统将数据划分为很多大小接近的分片,每个分片的多个副本可以分布到集群中的任何一个存储节点。如果某个节点发生故障,原有的服务将由整个集群而不是某几个固定的存储节点来恢复。由于整个集群都参与到该故障节点的恢复过程,所以故障恢复时间很短;并且集群规模越大,优势就会越明显。
 
  数据节点故障检测与恢复
 
  系统检测到故障出现时,自动使用备份数据进行故障恢复。
 
  基于总控节点的故障检测与恢复:
 
  基于分布式锁选主:
 
  使用例子:跨机房部署,当主机房发生故障时,除了手工切换到备机房,还可以采用分布式锁服务实现自动整体切换。

  集群选主协议自恢复:
 
  总控节点高可用
 
  总控节点备份
 
  除了工作节点需要通过数据备份、故障自动检测与恢复实现高可用外,总控节点自身也同样需要实现高可用。
 
  主控节点也需要集群部署,集群选主也可以通过心跳租约、分布式锁等方式实现:

  总控节点瓶颈
 
  QPS瓶颈:
 
  分布式存储系统范型
 
  分布式文件系统
 
  主控节点需要保存文件目录元数据信息;文件被拆分/合并为固定大小的数据分片,分布式异构保存在数据节点中。
 
  Google File System

  Taobao File System

  分布式键值系统
 
  数据分布一般采用一致性哈希
 
  淘宝Tair
 
  集中存储与分布式存储_大数据分布式存储_大数据数据存储
 
  Redis
 
  Redis采取的是无中心化架构
 
  高可用:Redis Sentinel

  分布式数据库
 
  分布式数据库(分库分表)可以在应用层实现,也可以在中间件层实现。
 
  MySQL Sharding
 
  中间件层实现

  Sharding JDBC
 
  应用层实现

  大数据存储
 
  Hadoop大数据家族的底层存储,主要使用的是HDFS文件系统。
 
  HDFS的关键组件有两个,一个是DataNode,一个是NameNode

  云存储
 
  云存储就是通过网络,将大量普通存储设备构成的集群,虚拟化为易扩展、弹性、透明、具有伸缩性的存储资源池,以统一的接口、按需提供给授权用户;授权用户可以通过网络对存储资源池进行任意的访问和管理,并按使用付费。
 

(编辑:财气旺网 - 海宁网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!