第三章大数据存储与管理

数据特征:巨大、非结构化、并行处理

分布式文件系统 NoSQL数据库 分布式数据库 云数据

3.2 分布式文件系统

3.2.1分布式文件系统

概念:文件系统管理的无物理存储资源不仅在本地节点上,还可以通过网络连接存储在非本地节点上,可解决备份、安全、可拓展等难题

评价一个分布式文件系统因素:
(1)数据的存储方式,即文件数据在各节点之间的分布策略
(2)数据的读取速率
(3)安全机制

3.2.1.1 常见的分布式文件系统

GFS、HDFS、lustre、ceph
hdfs:转为存储和管理超大数据文件分布式文件系统,运行在商品化的集群硬件上。

3.2.1.2 分布式关键技术

(1)统一名词空间:通常会在名字空间服务器的本地文件来进行存储
(2)锁机管理机制:分布式并行文件系统用户与多进程并行访问提供高速I/O
(3)副本管理机制
副本是分布式文件系统的核心技术
(4)数据存取技术
一是分块、二是放置
(5)安全机制
(6)课扩展性

3.2.2HDFS简介

Hadoop非常适合于存储海量数据,使用HDFS作为存储系统,可以连接多个节点
HDFS是容错的,对大数据集的高吞吐量访问有以下特性:
(1)一次写入,多次读取 模型。降低了并发性控制要求,简化了数据聚合性
(2)将处理逻辑放置到数据附近,通常将数据移向应用程序空间更好

HDFS的主要设计目标是:
(1)通过维护多副本和在故障发生时自动重新部署处理逻辑,来实现可靠性。
(2)采用简单可靠的聚合模型
(3)处理逻辑接近数据,而不是数据接近处理逻辑
(4)跨异构普通硬件和操作系统的可移植性
(5)通过跨多个普通个人计算机集群分布数据和处理以节约成本
(6)通过分布数据和逻辑到数据所在多个节点上进行并行处理,来提高效率

HDFS提供了一个原生Java应用程序编程接口(api)和一个针对这个Java API 的原生C语言封装器

3.2.3 HDFS 体系结构

3.2.3.1 HDFS体系结构

设计目标:提供一个高容错、能部署在廉价硬件上的分布式系统,支持高吞吐量适合大规模数据集应用。

高层设计(名节点、主节点,数据节点)
它们之间的通信,包括客户端与HDFS名节点服务器的通信,则基于TCP/IP.通过可配置的TCP端口连接到名节点,通过客户端协议与名节点交互。数据节点使用数据节点协议与名节点交互。

名节点可看作是数据节点的管理者,执行与文件系统命名空间相关操作

3.2.3.2 HDFS体系结构的设计原则

(1)元数据与数据分离
(2)主从结构
一个HDFS集群是由一个名节点和一定数目的数据节点组成
名节点:管理文件系统的名字空间以及客户端对文件的访问
数据节点:一个节点一个,负责管理它所在节点上的存储
(3)一次写入多次读取
HDFS中的文件只能写一次,且在任何时候只能有一个写入程序,一旦关闭则不可以修改。可以有效的保证数据的一致性
(4)移动算比移动数据更划算

HDFS在改善吞吐量与数据访问性能上的设计决策》。。。。P81

3.2.4 HDFS存储原理

1.名节点和数据节点
名节点:执行文件系统的操作(文件打开/关闭/重命名等)
数据节点:负责来自客户端的文件读写

2.文件系统命名空间
可以创建、删除、移动和重命名文件和目录

3.数据复制
维护数据以便让用户随时随地可以获取的方法是存储文件副本

HDFS将文件分成大小完全相同的若干份存储与各个数据节点之上,同时在其他的若干个数据节点上保存有各个文件块的副本
<1>副本放置策略
<2>安全模式:在安全模式下,数据块的赋值不会发生

4.文件系统元数据的持久存储
HDFS文件系统的元数据被存储在名节点上。整个HDFS文件系统的命名空间、数据块与文件映射关系,文件系统的各个属性都被存放在一个叫做元数据镜像的文件中

5.多副本的流式复制

6.心跳检测和重新复制
数据节点周期性向名节点报告自己节点的状态
出错的三种情况:名节点出错、数据节点出错、网络中断。

3.2.5 HDFS数据读写

HDFS 集群=文件系统元数据名节点+存储实际数据的数据节点
1.读操作
2.写操作 看书 85页

3.3分布式数据库

数据库的核心是实现数据的高效管理
关系数据库包括的功能:面向磁盘的存储和索引、多线程访问、基于锁的同步控制机制、基于日志的回恢复机制、事务机制等。
HBASE为典型代表的非关系型数据库

3.3.1概述

HBase的原型是谷歌的分布式存储系统big table 。具有广泛性、可拓展性、高性能和高可用行等特点,主要用来存储非结构化和半结构化的数据

3.3.2HBase 数据模型

本质上是一个稀疏、多维度、排序的数据映射表,这张表的索引是行键、列族、列限定符和时间戳,表中的每个值都是一个没有数据类型的字符串

HBase中执行更新操作时,并不删除数据的旧版本,而是新生成一个新的版本,旧版本仍然保留
两种数据清理方式:保存数据最近k个版本
最近一段时间内的版本

(1)行:每个行由行键来表示 。访问表中的行有三种方式:(1)通过单个行键访问 (2)通过一个行键的区间访问和全表扫描

(2)列族(多个列的组合)
创建表时就定义好,数量不能太多,不应频繁修改。列名都以列族作为前缀,HBase中,访问控制、磁盘和内存的使用统计都是在列族层面上进行的。列族中的数据经过限定符(或)列来定位

(3)时间戳
每个单元格中数据的不同版本利用时间戳进行索引,单元格(通过列、列族和列限定符即可定位一个单元格)

HBASE通过【行键、列族、列限定符、时间戳】确定一个数值

3.3.3HBASE实现模块

(1)链接到每个客户端的库函数
(2)一个主(master)服务器:负责管理和维护HBASE表的分区信息,处理表和列族的创建之类的模式变化
(3)多分分区服务器

客户端实在获得分区的存储位置之后,直接从分区服务器上读取数据,借助zookeeper获得分区的位置信息,减小了服务器的负载
.MEAT表:一张包含分区标识符和分区服务器表示的元数据表
.ROOT表:一张. MEAT表被分裂成多个分区时,重新定义的关于.MEAT表的分区映射表,记录所有元数据的具体操作,称为根数据表

3.3.4 HBASE工作原理

(1)客户端:包含访问HBASE的接口,使用HBASE的RPC机制与主服务器和分区服务器进行通信。

(2)zookeeper:可能是由多台机器构成的集群来提供可靠稳定的协同服务
主服务器通过zookeeper随时感知到各个分区服务器的状态,棵树段可通过zookeeper访问 -ROOT-并最终通过三级地址找到想要的数据

(3)主服务器:主要负责管理用户对表的增、删、改及查询等操作,可以安排分区服务器!

(4)分区服务器:是HBASE最核心的模块,负责维护位于本机的所有分区,并相应用户的读写请求。HBASE本身不具有读写功能,HDFS可以提供

3.4非关系型数据库

3.4.1概述

由于对数据库存储的容量要求越来越高,单机无法满足,

关系型和非关系型数据库都有各自的优缺点应该应用于不同的场景。
所采取的的数据模型并非传统关系数据库的模型而是类似键/值、列族、文档等非关系模型。

	非关系型数据库没有固定的表结构,通常也不存在连接操作,也没有严格遵守ACID约束。有较好的可扩展性、无共享架构、支持海量数据的存储

有几个特点:
(1)灵活的可扩展性:横向扩展
(2)灵活的数据模型:拜托关系数据库的各种束缚条件,采用键/值、列族等非关系模型、允许在一个数据元素里存储不同类型的数据
(3)与云计算紧密融合

3.4.2非关系型数据库相关理论

(1)CPA
consistenc(一致性)
availability(可用性)
tolerance of network partition()分区可容忍性
有以下几个方案可取:CA CP AP

(2)BASE:基本含义是可用、软状态和最终一致性
基本可用:一个分布式系统的一部分发生问题变得不可用时,其他部分仍然可以正常使用
软状态:可以有一段时间数据不同步,可以有一定的滞后性。
最终一致性:允许后续的访问操作可以暂时读不到更新后的数据,但是一段时间后,必须最终读到更新的数据。
最终一致性根据更新数据后各进程访问到数据的时间方式不同,可分区为:
因果一致性
写一致性:当A进程自己执行一个更新操作后,他自己总是可以访问到更新过的值
会话一致性
单调读一致性:如果进程已经看到过数据对象的某个值,那么任何后续访问都不会返回在那个值之前的值。
单调写一致性:系统保证来自同一个进程的写操作顺序执行。

为实现最终一致性,常用做法:单数据库事务、基于两阶段协议的多数据库事务,基于消息队列…

3.4.3 典型NOSQL数据库

(1)键值数据库:键值数据库会使用一个哈希表,表中有一个特定的键和一个指针指向特定的值,不可对值进行索引和查询,只能通过键进行查询
·键可以存储任意类型的数据
可以分为内存键值数据库:把数据保存在 内存中,例如Redis
持久化键值数据库:把数据保存在磁盘中,例如:riak
条件查询是键值数据库的弱点,不回滚,无法支持事物,应该避免多表关联查询,可以采用双向冗余存储关系。

(2)列数据库
一般采用列族数据模型,由多行组成,每行有多个列族,不同可以具有不同数量的列族,每行数据通过行键进行定位,也可以视为键值数据库

(3)文档数据库
文档时数据库的最小单位,文档数据库通过键来定位一个文档,对于可以把输入数据表示成文档的应用而言,文档数据库非常适合,既可以根据键来构建索引和查询这种能力,主要用于存储并索引文档数据

(4)图数据库
以图论为基础,专门用于管理高度相关联关系的数据,高效地处理实体之间的关系,适合于社交网络,模式识别…

3.4.4与关系型数据库的对比

关系数据库优势:以完善的关系代数理论作为基础,技术成熟,有专业公司技术支持
劣势:可扩展性差,无法较好支持海量数据存储,模型过于四班
NoSql数据库优势:支持超大数据库存储规模。数据规模灵活,强大横向扩展能力
劣势:缺乏数学理论基础,复杂查询性能不高,不能实现事务强一致性。

3.4.5从非关系型数据库到NewSql

NewSql是对各种新的可扩展、高性能数据库的简称,有存储海量数据+ACID和SQL等特性。
都支持关系数据模型和都是用sql作其主要的接口

3.5云数据库

3.5.1概述

是被优化或部署到一个虚拟计算环境中的数据库,相比传统数据库,云数据库易于部署、管理和扩展。
云数据库是把传统的数据库本身以云计算服务的方式对外提供服务,不在乎选择的是那种传统数据库。
1.云计算的优势(以RDS为例)
(1)部署快捷
(2)可靠性高
(3)成本低

2.云数据库与云存储的区别
(1)对应的层面
云存储==>资源层
云数据库= =>平台层
(2)提供的服务
云存储= =>存储能力,更多面向非结构化数据
云数据库= =>提供基础的数据库和数据对象管理能力
(3)两者关系
云存储= =>HDFS分布式文件系统进行封装,提供存储服务能力接口。

3.5.3云数据库产品

常见的云数据库产品总结:
(1)亚马逊web服务(AWS)
(2)微软AZURE
(3)Google云平台…

3.6大数据的SQL查询引擎

3.6.1概述

对sql语言的具体作用进行剖析,可以解读为建立各种不同数据库之间的具体联系。
大数据sql访问层和查询引擎就是实现sql查询与非关系型数据库关联的一种重要手段
以下是几种主流的大数据sql查询工具

3.6.2 Phoenix

最早是saleforce的一个开源项目,构建在Hbase上的一个sql层,完全使用java编写,有以下一些特性:
(1)嵌入式的jdbc驱动,实现了大部分的java.sql接口,包括元数据API
(2)可以通过多部行键或是键/值单元对列进行建模
(3)完善的查询支持,可以使用多个谓词以及优化的扫描键
(4)DDL支持:通过create table 、drop 及alter来添加或者删除
(5)版本化的模式仓库:当写入数据时,快照查询会使用恰当的模式
(6)DML支持:upset、delete用于相同或不同表之间大量数据传输的upsert select
(7)通过客户端的批处理实现的有限事务支持
(8)符合ANSI SQL标准

3.6.2.1创建关联视图

创建的视图是只读的

3.6.2.2创建关联表

3.6.3Hive

3.6.3.1概述

hive是一个数据仓库基础工具,在Hadoop中用来处理结构化数据,可将sql语句转换为MapReduce任务进行运行
特点:(1)它存储架构在一个数据库中并处理数据到HDFS
(2)它专为OLAP设计的
(3)它提供SQL类型查询HIVEQL或HQL

3.6.4 Apache drill和presto

3.6.5cloudera impala

这后面的内容我是跳过了的,因为好像天书,我一点也看不懂!哈哈哈哈哈

3.7小结

主要介绍大数据存储与管理涉及的分布式文件系统及助理技术HDFS,分布式数据库中的典型技术HBASE,非关系型数据库、云数据库等技术。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统中,Hadoop与MapReduce A:大数据技术原理与应用第三章主要介绍了分布式文件系统和MapReduce并行计算框架中的Hadoop技术,包括Hadoop的概念、特点、架构、组件、安装、使用等方面。在分布式文件系统中,Hadoop使用HDFS作为其基础架构,实现文件存储和访问的高可用性和可扩展性,能够支持大规模的数据存储和处理。而MapReduce是Hadoop提供的一种分布式并行计算框架,能够将大规模数据处理任务分解成多个小任务,在分布式计算环境中进行并行计算,从而提高数据处理能力和效率。 Hadoop的组件包括HDFS、YARN和MapReduce。其中,HDFS作为文件存储系统,YARN是Hadoop的资源管理框架,用于管理集群资源,对作业进行调度和监控。MapReduce是Hadoop的分布式计算框架,其基本思想是将计算任务分解成多个小任务,并在分布式计算环境中进行并行计算。在MapReduce执行过程中,Map函数用于将输入数据划分为若干份,并由多个Map任务同时处理,生成键值对;Reduce函数用于对Map任务生成的键值对进行汇总和统计,得到最终的结果。 Hadoop的安装和使用需要先配置环境,然后下载和安装Hadoop软件包,进行集群配置和启动,具体的安装和使用过程在第三章中有详细说明。 总结来说,Hadoop技术是大数据处理中非常重要的基础技术之一,能够支持大规模数据存储和处理,提高数据处理能力和效率。MapReduce并行计算框架是Hadoop的重要组件,能够将大规模数据处理任务分解成多个小任务,在分布式计算环境中进行并行计算。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值