一、分布式文件系统

1. 分布式文件系统

  1. 定义:分布式文件系统(Distributed File System, DFS)是指文件系统管理的物理存储资源不仅存储在本地节点上,还可以通过网络连接存储在非本地节点上。

  2. 分布式文件系统相较于本地存储的优势:

  • 低成本
  • 易扩展:横向扩展
  • 强可靠
  • 高可用

用户无需关心数据是存储在哪个节点上,可以如同使用本地文件系统一样存储和管理分布式文件系统里的数据。

  1. 评价一个分布式文件系统,通常基于以下三个因素:
  • 数据的存储方式,即文件在各个节点之间的分布策略,以保证数据的存储安全和方便获取。
  • 数据的读取速率,包括响应用户读取数据文件的请求、定位数据文件所在的节点、读取实际硬盘中数据文件的时间、不同节点间的数据传输时间以及一部分处理器的处理时间等。
  • 数据的安全机制,由于数据分散在各个节点上,必须要采用冗余、备份、镜像等方式保证节点出现故障的情况下,能够进行数据的恢复,确保数据安全。

2. 主流的分布式文件系统

GFS( Google File System ):Google公司为了满足本公司需求而开发的基于 Linux 的专有分布式文件系统。
HDFS ( Hadoop Distributed File System ):Hadoop 分布式文件系统是GFS的简化版。

3. HDFS 特点

  • 兼容廉价的硬件设备:HDFS 把硬件故障看做常态进行设计,通过增加数据副本、冗余存储等机制保证数据的可靠性、安全性、高可用性
  • 流式数据访问:而非随机读写,满足大批量数据读写要求,提高吞吐量
  • 存储和管理超大文件
  • 简单的文件模型:一次写入、多次读出
  • 强大的跨平台兼容性

4. HDFS 的体系结构

  • 一个HDFS集群通常由一个 NameNode 和多个 DataNode 组成
  • HDFS 将文件数据分割成若干个数据块(Block),每个 DataNode 存储一部分数据块
  • 应用程序客户端(Client)可以并行地对数据块进行访问,极大提高了访问速度
  • NameNode 负责整个分布式文件系统的元数据(MetaData)管理,也就是文件路径名、数据块ID以及存储位置等信息
  • DataNode 负责文件数据的存储与读写操作,在 NameNode 的统一调度下进行数据块的创建、删除和复制等操作;并周期性的向 NameNode 报告自己的状态,没有按时报告的数据结点会被标记为"宕机",不再给它分配I/O请求

5. 冗余数据存储的好处

  • 加快数据传输速度
  • 容易检查数据错误
  • 保证数据可靠性

6. HDFS 数据读写过程

  • 读数据流程
  • 写数据流程

二、分布式数据库

1. 关系数据库优点、不足

优点:
① 完备的关系理论基础
② 事务管理机制的支持
③ 高效的查询优化机制
不足:
① 无法满足海量数据的管理需求
② 无法满足数据高并发的需求
③ 无法满足高可靠性和高可用性的需求

2. HBase 简介

  • HBase 的原型是 Google 的分布式存储系统 BigTable
  • 作为 BigTable 的开源实现,HBase 是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的数据
  • HBase 的目标是处理非常庞大的表,通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列属性组成的数据表

3. HBase 数据模型

:HBase 采用表来组织数据,表由行和列组成,列划分为若干个列族
:每个HBase表都由若干行组成,每个行由行键(row key) 来标识
列族:一个 HBase 表被分组成许多"列族"(Colume Family) 的集合,它是基本的访问控制单元
列限定符:列族里的数据通过列限定符(或列)来定位
单元格:在 HBase 表中,通过行、列族和列限定符确定一个"单元格"(Cell),单元格中存储的数据没有数据类型,总被视为字节数组 byte[]
时间戳: 每个单元格都保存着一份数据的多个版本,这些版本采用时间戳进行索引

  • HBase 本质上是一个稀疏、多维度、排序的映射表,该表的索引是 行键、列族、列限定符和时间戳
  • 表中的值是未经解释的字符串,没有数据类型
  • 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一起
  • 列族可以动态扩展,所有列均以字符串形式存储,用户需要自行进行数据类型转换
  • HBase 中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧的版本仍然保留
  • 数据是按照时间戳顺序存储的,客户端可以选择获取距离某个时间最近的版本,或者获取所有版本;若不提供时间戳则默认返回最新版本

4. 逻辑视图 vs. 逻辑视图

5. HBase 实现原理

  1. HBase 中的表根据 行键 (row key) 的值被水平划分成多个分区(Region),分区会被分发存储到不同的分区服务器上
  2. HBase 的实现包括三个主要的功能组件
  • 链接到客户端的库函数:客户端通过访问库函数实现与 HBase 的交互
  • 一个 Master 主服务器
  • 多个 Region 服务器

主服务器Master 负责管理和维护 HBase 表的分区信息,维护 Region服务器列表、分配Region、负载均衡以及处理 Schema 的变化,如表和列族的创建。
Region 服务器负责存储和维护分配给自己的 Region,处理来自客户端的读写请求。

补:Master、Region 架构类似于 HDFS 中的 Namenode 与 Datanode。

6. 分区定位

  • 元数据表,又名 META表,存储了 Region 和 Region Server 的映射关系
  • 读数据流程:客户端访问数据之前,需要首先访问 Zookeeper 获取 MEAT表的信息(元数据),接着放访问 META表数据,找到所需分区的具体位置,最后到对应的分区服务器读取数据
  • 为加速寻址,客户端会把查询过的位置信息在本地缓存

三、非关系型数据库

  1. NoSQL 是对非关系型数据库的统称,其特点:
  • 灵活的可扩展性
  • 灵活的数据模型
  • 与云计算紧密融合
  1. 典型的 NoSQL 数据库有:
  • 键值数据库
  • 列存储数据库
  • 文档数据库
  • 图数据库
  1. 键值数据库
  • 键值数据库(Key-Value) 将数据存储为 键值对集合,其中键作为唯一标识符,可以用来定位值
  • 值对数据库而言是不可见的,不能对值进行索引和查询
  • 键是一个字符串对象,值可以是任意类型的数据,比如整型、字符型、数组、列表和集合等
  • 键值数据库可以分为内存键值数据库持久化键值数据库
    • 内存键值数据库:数据保存在内存,如Memcached、Redis
    • 持久化键值数据库:数据保存在硬盘,如BerkeleyDB
  • 键值数据库是高度可分区的,具有高可扩展性
  1. 列存储数据库
  • 列存储数据库主要面向海量数据的分布式存储
  • 列存储数据库一般采用列族数据库模型,数据库由多行构成,每行数据包含多个列族,不同行可具有不同数量的列
  • 每行数据通过行键进行定位,行键对应多个列,列以列族为单位组织存储
  1. 文档数据库
  • 文档数据库用于存储、检索和管理面向文档的信息
  • “文档” 是处理信息的基本单位,相当于关系数据库中的一条记录
  • 目的:皆在将半结构化数据存储为文档,通常用 XML、JSON等文档格式来封装和编码数据
  • 文档数据库通过 “键” 来定位一个文档,因此可以看成是键值数据库的衍生品
  • 关于索引:文档数据库可以根据来构建索引,也可以基于文档内容来构建索引
  • 文档能够对包含的数据类型和内容进行 “自我描述”
  • 一个文档可以包含非常复杂的数据结构,如嵌套对象,且每个文档可以有完全不同的数据结构
  1. 图数据库
  • 图数据库(Graph Database) 使用 作为数据模型,通过节点、边和属性来表示和存储数据
  • 图数据库专门用于管理具有高度相互关联关系的数据
    • 如社交网络、依赖分析、推荐系统以及路径寻找等问题

属性图模型

  1. NoSQL vs. 关系数据库
  • 关系数据库

    • 优:以完整的关系代数理论作为基础,有严格的标准,支持事务ACID,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持
    • 劣:可扩展性较差,无法较好支持海量数据存储,数据模型不灵活,无法较好支持 Web2.0 应用,事务机制影响了系统的整体性能等
  • NoSQL 数据库
    • 优:可以支持超大规模数据存储,灵活的数据模型可以很好地支持 Web2.0 应用,具有强大的横向扩展能力等
    • 劣:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性(存储在数据库中的所有数据值均正确的状态),缺乏专业团队的技术支持,维护较困难等

3. 大数据存储与管理相关推荐

  1. 大数据技术原理与应用——大数据存储与管理

    大数据技术原理与应用--大数据存储与管理 1.分布式文件系统 (1)计算机集群结构 集群的概念 集群是指将多台服务器整合在一起,每台服务器都实现相同的业务,做相同的事情. 每台服务器并不是缺一不可,它 ...

  2. 人工智能如何提升大数据存储与管理效率?

    简介: 通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平.而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案. 随着大数据的大量来源以及企业可用数据量的增加,存储容量规划已 ...

  3. 【大数据处理技术】第二篇 大数据存储与管理(暂停更新)

    文章目录 第3章 分布式文件系统HDFS 3.1 分布式文件系统 3.1.1 计算机集群结构 3.1.2 分布式文件系统的结构 3.1.3 分布式文件系统的设计需求 3.2 HDFS 3.2.1 HD ...

  4. 什么是大数据系统存储及管理?

    什么是大数据系统存储及管理?根据数据存储和管理的内容范围,大数据存储及管理技术需要重点研究如何解决大数据的可存储.可表示.可处理.可靠性及有效传输等.需要解决:海量文件的存储与管理,海量小文件的传输. ...

  5. 管理大数据存储的十大技巧

    在1990年,每一台应用服务器都倾向拥有直连式系统(DAS).SAN的构建则是为了更大的规模和更高的效率提供共享的池存储.Hadoop已经逆转了这一趋势回归DAS.每一个Hadoop集群都拥有自身的- ...

  6. 大数据处理技术作业——使用HBaseMongoDBMapReduce进行数据存储和管理

    前言 写这篇文章的目的,主要是为了记录一下这次作业历程,并且笔者了解到很多同志饱受作业折磨,遂简单分享一下个人完成作业的历程,以下内容仅为本人的一些乱七八糟的想法,仅作参考O(∩_∩)O 作业要求 1 ...

  7. 澄清大数据存储——系统集成商篇

    大数据考验整合能力 大数据在带来新的商机和用户的同时,也带来了诸多挑战. 大数据存储主要考验的是技术整合能力和资源整合能力. 大数据是一项持久的工程,也是一个不断迭代的过程,不能一蹴而就. 业务集中在 ...

  8. 全球海拔最高的国际级数据中心竣工,西藏有了大数据存储中心

    全球海拔最高的国际级数据中心.西藏首个大数据存储中心,宁算科技集团拉萨一体化项目数据中心(一期)工程12月18日通过竣工验收. 项目位于海拔3670米的拉萨市国家级高新区信息产业园内,总建筑面积为2. ...

  9. 日常生活中怎样利用计算机的,数据存储与管理在日常生活中的三种方式

    数据存储与管理在使用的时候还是有很多的技术性要求需要我们不断的学习和实践.下面是在长时间的市场积累中总结出来的一些关于数据存储与管理的技巧. 过去20年里,计算领域发生了很大的变化,无论如何变化,计算 ...

最新文章

  1. 【面经】超硬核面经,已拿蚂蚁金服Offer!!
  2. vue脚手架项目技术集合
  3. Java -- 基于JDK1.8的LinkedList源码分析
  4. ThinkPHP5.0中Redis的使用和封装
  5. wp自定义帖子没标签_谷歌对nofollow标签重新定义,百度是否有变化哪?
  6. c语言中二维数组怎么,c语言中什么是二维数组
  7. 第三课——MFC编程
  8. 常见移动机器人轮直径校准(图片版)
  9. git SSH 公钥拉取代码(使用及配置)
  10. 一键破解宝塔面板的专业版本权限
  11. 使用hector构图_如何使用均衡的构图拍摄更清晰的照片
  12. 【原创】常用元器件(电阻)选型之阻值识别-cayden20220910
  13. 关于轻量级知识共享平台mm-wiki的使用
  14. 一台显示器分成双屏_双屏办公,用起来到底有多爽
  15. 2018-2019-2 网络对抗技术 20165322 Exp4 恶意代码分析
  16. 爬虫关键信息获取与MongoDB数据库使用方法
  17. 卡通猫咪鼠标跟随动态js特效
  18. Numpy:数组(Ndarray)操作之数组的转换
  19. 安卓系统加速_安卓手机这样优化一下,流畅度至少能提升30%
  20. 主流链分片技术和共识算法

热门文章

  1. 旅游舆情监控实施方案
  2. C罗,一个关于坚持的故事
  3. 【智慧养殖】养羊场智能养殖方案
  4. 安卓系统的电视机_没有图纸的电视机该如何维修
  5. HDU - 1408 盐水的故事
  6. HTML 单选按钮根据值设置选中和获取值
  7. Android中EditText输入框焦点从文字前面变成文字后面
  8. 【SQL】spark sql 判断星期几 周六周日 平日 周末
  9. 米哈游被金融割韭菜,赚太多不会花钱也是个问题
  10. 程序员副业200万,主业40万!不禁感叹:工作的意义是什么?