大数据存储架构

在这里插入图片描述

存储分类

  • 封闭系统存储:大型机专用。
  • 开放系统存储:基于Windows、UNIX、Linux等。
  • 内置存储与外挂存储:物理连接方式的差异。

DAS:直连式存储,适用于小型企业,但存在管理不便和扩展性差的问题。

NAS:网络接入存储,易于部署,但受网络流量影响,可能存在安全风险。

SAN:存储区域网络,高性能但成本高,适合大型应用。

三者应用场景及区别
 DAS古老,但是很适用于那些数据量不大,对磁盘访问速度要
求较高的中小企业;
NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于
以太网的速度,但是部署灵活,成本低;
SAN则适用于大型应用或数据库系统,缺点是成本高、较复杂。

容量问题

  • 大规模数据: 存储系统需支持PB级数据规模,具备高扩展性。
    • 简便扩展: 通过增加模块或磁盘柜来扩展容量,支持不停机扩展。
  • 庞大文件数量: 需要有效管理大量文件累积的元数据。
    • 元数据管理: 传统NAS系统可能存在瓶颈,对象存储架构可有效管理十亿级文件。

延迟问题

  • 实时性需求: 特别是金融或交易类应用,需要快速响应。
    • 高IOPS性能: 需求推动固态存储设备发展,从服务器缓存到全固态存储系统。
  • 并发访问: 企业需分析多数据集,要求存储基础设施支持多用户并发访问。

安全问题

  • 行业安全标准: 金融、医疗、政府等行业对数据安全性和保密性有特殊要求。
    • 数据混合访问: 大数据环境下,多数据源相互参考可能引发新的安全问题。

成本问题

  • 成本控制: 关键问题,需提高设备效率,减少昂贵部件使用。
    • 技术优化: 如重复数据删除技术,提升存储效率。
    • 减少存储消耗: 降低后端存储消耗,提高投资回报。
    • 自动精简配置: 使用快照和克隆技术提升存储效率。
    • 归档组件: 支持长期保存数据,对需要分析历史数据的机构尤为重要。

HDFS简介

  • 全称:Hadoop Distributed File System分布式文件系统

  • Hadoop分布式计算中的数据存储系统

  • 用途:为Hadoop分布式计算提供数据存储,特别适用于大规模数据集。

  • 特点

    • 基于流数据模式,适合超大文件。
    • 运行在普通硬件上,成本低廉。
    • 简单文件模型,优化数据访问。
    • 强大的跨平台兼容性。

HDFS设计目标

  • 利用廉价硬件。
  • 支持大规模数据集。
  • 简单文件模型
  • 优化流数据读写。
  • 跨平台操作。

HDFS局限性

  • 不适合需要低延迟的数据访问。
  • 存储大量小文件效率不高。
  • 不支持多用户同时写入或文件的随机修改。

HDFS角色

  • Client客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写。
  • Namenode (NN)元数据节点,是系统唯一的管理者。负责元数据的管理;与client交互进行提供元数据查询;分配数据存储节点等。
  • Datanode (DN)数据存储节点,负责数据块的存储与冗余备份;执行数据块的读写操作等。

HDFS写数据流程

  1. 请求上传:Client向Namenode请求上传文件。
  2. 检查存在性:Namenode检查文件和父目录是否存在。
  3. 文件切分:Client将文件切分成数据块。
  4. 获取Datanode列表:Namenode返回数据块应存储的Datanode列表。
  5. 建立通信:client请求一台datanode上传数据,第一个datanode 收到请求会继续调用第二个,然后第二个调用第三个,将这个通信管道建立完成,然后逐级应
  6. 数据传输:client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位(一个packet为64kb),第一台datanode收到一个packet就会传给第二台,第二台传给第三台;第一台每传一个packet会放入一个应答队列等待应答(块传:分为很多包)
  7. 应答与继续:当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。

HDFS读数据流程

  1. 查询元数据:Client跟namenode通信,查询元数据(block所在的datanode节点)
  2. 文件存在性检查:Namenode确认文件是否存在。存在,则响应客户端该文件保存在datanode节点上。
  3. 建立连接:客户端收到可以读文件的响应后,根据拿到的datanode节点信息,会与每个datanode节点建立网络连接
  4. 数据读取:Client读取保存在每个datanode节点的block块数据
  5. 数据缓存与存储:Client将数据缓存并存储到本地磁盘

HDFS容错机制概述

HDFS(Hadoop Distributed File System)设计了多种容错机制来确保数据的可靠性和访问的连续性,即使在面临各种故障时也能保持稳定运行。

故障类型及监测方法

  • 节点失败:HDFS能够监测到节点的失败,这可能包括Namenode或Datanode的故障。
  • 网络故障:系统能够识别网络问题,这些问题可能会影响节点之间的通信。
  • 通信故障:监测节点间的通信故障,确保数据传输的可靠性。
  • 数据损坏(脏数据):监测数据的一致性,以识别和处理可能的数据损坏情况。

读写容错

  • 写容错:在写入数据时,HDFS通过复制数据块到多个Datanode来实现写入容错,确保数据不会因为单个节点的故障而丢失。
  • 读容错:在读取数据时,如果某个Datanode失效,HDFS可以从其他拥有数据副本的节点读取数据。

数据节点(DN)失效

  • 当Datanode失效时,HDFS会从其他节点中选择替代节点来存储数据的副本,以维持数据的冗余度。

备份规则

  • 机架与数据节点备份:HDFS的备份策略会考虑机架的拓扑结构,优先在同一机架内的不同节点上存储数据副本,以减少跨机架通信的延迟和带宽消耗。
  • 副本放置策略:HDFS有一套智能的副本放置策略,确保数据副本在不同的物理位置存储,以提高容错能力。

HDFS容错机制概述

HDFS(Hadoop Distributed File System)设计了多种容错机制来确保数据的可靠性和访问的连续性,即使在面临各种故障时也能保持稳定运行。

故障类型及监测方法

  • 节点失败:HDFS能够监测到节点的失败,这可能包括Namenode或Datanode的故障。
  • 网络故障:系统能够识别网络问题,这些问题可能会影响节点之间的通信。
  • 通信故障:监测节点间的通信故障,确保数据传输的可靠性。
  • 数据损坏(脏数据):监测数据的一致性,以识别和处理可能的数据损坏情况。

读写容错

  • 写容错:在写入数据时,HDFS通过复制数据块到多个Datanode来实现写入容错,确保数据不会因为单个节点的故障而丢失。
  • 读容错:在读取数据时,如果某个Datanode失效,HDFS可以从其他拥有数据副本的节点读取数据。

数据节点(DN)失效

  • 当Datanode失效时,HDFS会从其他节点中选择替代节点来存储数据的副本,以维持数据的冗余度。

备份规则

  • 机架与数据节点备份:HDFS的备份策略会考虑机架的拓扑结构,优先在同一机架内的不同节点上存储数据副本,以减少跨机架通信的延迟和带宽消耗。
  • 副本放置策略:HDFS有一套智能的副本放置策略,确保数据副本在不同的物理位置存储,以提高容错能力。

HBase概述

  • 全称:Hadoop Database
  • 定义:高可靠、高性能、面向列、可伸缩的分布式存储系统(利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群)
  • 来源:受Google Bigtable论文启发。HBase是Apache的Hadoop项目的子项目
  • HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,即
    Nosql。另一个不同的是HBase基于列的而不是基于行的模式。

Hbase利用Hadoop HDFS作为其文件存储系统;
HBase利用Hadoop MapReduce来处理HBase中的海量数据;
HBase使用的是Zookeeper作为对应。

HBase架构

  • Client:访问HBase,保留缓存信息以提升效率。
  • Zookeeper:管理集群状态,监控RegionServer,存储元数据。
  • HMaster:分配Region给RegionServer,负载均衡,垃圾回收,数据的更新请求。
  • RegionServer:维护Region,处理IO请求,切分在运行过程中变得过大的region。

HBase特点

  • 大规模:支持亿行百万列的表。
  • 面向列存储:面向列表(簇)的存储和权限控制,列(簇)独立检索。
  • 稀疏性:空列不占用存储空间。
  • 无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列
  • 多版本数据:每个单元数据可有多个版本,时间戳为版本号。
  • 数据类型:HBase中的数据都是字符串,没有类型。
    在这里插入图片描述

LSM树模型

  • LSM树:Log-Structured Merge Tree,优化读写性能。
  • 操作:支持增、删、改、查、顺序扫描。
  • 机制:通过批量存储技术规避磁盘随机写入问题。

LSM树原理把一棵大树拆分成N棵小树,它首先写入内存中,随着小树越来越大,内存中的小树会flush到磁盘中,磁盘中的树定期可以做merge操作,合并成一棵大树,以优化读性能

HBase读写流程

  • 写流程

    • 从Zookeeper获取Meta信息,定位RegionServer。
    • 数据写入MemStore和WAL。
    • MemStore阈值达到后刷写StoreFile。
    • StoreFile合并优化存储。
      在这里插入图片描述
  • 读流程

    • 从Zookeeper获取Meta信息,定位数据位置。
    • 在RegionServer查找StoreFile和MemStore。
    • 按版本返回数据。
      在这里插入图片描述

HBase优缺点

  • 优点
    • 列动态增减,并且列为空就不存储数据,节省存储。
    • 自动数据切分,水平扩展。
    • 支持高并发读写。
    • 与MapReduce结合,有利于数据分析
    • 容错性,免费版权。
    • 非常灵活的模式设计(或者说没有固定模式的限制)
    • 可以跟 Hive 集成,使用类 SQL 查询
    • 自动故障转移
    • 客户端接口易于使用行
    • 级别原子性,即,PUT 操作一定是完全成功或者完全失败
  • 缺点
    • 不能支持条件查询,只支持按照 row key 来查询
    • 容易产生单点故障(在只使用一个 HMaster 的时候)
    • 不支持事务。
    • JOIN 不是数据库层支持的,而需要用 MapReduce
    • 只能在逐渐上索引和排序
    • 无内置身份权限认证。
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值