《数据采集与处理技术》课件-第2章 大数据技术基础_第1页
《数据采集与处理技术》课件-第2章 大数据技术基础_第2页
《数据采集与处理技术》课件-第2章 大数据技术基础_第3页
《数据采集与处理技术》课件-第2章 大数据技术基础_第4页
《数据采集与处理技术》课件-第2章 大数据技术基础_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章大数据技术基础目

录2.1

大数据分布式文件系统2.2

分布式数据库系统HBase2.3

大数据分布式数据仓库2.1大数据

分布式文件系统2.1大数据分布式文件系统

2.1.1数据管理技术的发展

数据管理技术从诞生到现在,经过不断演变和发展,如今已经有了一套成熟的理论体系和成熟的产业环境,引领了计算机科学的快速发展并带来了巨大的经济效益,先后经历了4个阶段。

1.文件系统阶段

在出现了可以长期保存数据的外存储器后,数据的存取已成为计算机的主要功能之一,操作系统中也出现了用于文件管理的相应软件,这一阶段存取数据的方式称为文件系统。

文件系统在数据管理上有一定的优点,但它仍存在一些缺点,主要表现在数据的共享性差,冗余度高;数据的独立性不足;并发访问容易产生异常;数据的安全控制难以实现等4个方面。2.数据库系统阶段

为了克服文件系统的缺点,人们研究、设计一种新的、面向整个企业(组织)或整个应用的数据存取和管理方式,进入数据库系统阶段,数据库系统最主要的特点是共享性。

简单来说,数据库就是存储在计算机的外存中有组织(格式或模型)的、大量的、共享的数据集合。目前,使用最广泛的是关系型数据库,其特点是可以供各种用户共享,具有最小冗余度和较高的数据独立性。

数据库技术的出现,改变了人们利用计算机进行数据存储和管理的思维方式,从以程序为中心,转向到以数据库(能够实现数据共享的)为中心,从而提出了利用数据进行决策的思想。

2.1.1数据管理技术的发展

3.数据仓库阶段

数据仓库是基于计算机技术的快速发展和大数据时代下企业的需求而提出的,绝大多数数据仓库的建设是为了进行数据分析与挖掘,而且基本是基于关系数据库与多维数据库建立的。

2.1.1数据管理技术的发展4.分布式系统阶段

传统的网络文件系统(NFS)虽然也是分布式的,但是在数据的存储和管理上,存在一些致命的缺点。一是数据的存取单位是文件,文件是存储在单机上,数据的共享性差。二是当很多客户端同时访问NFS服务器时,对网络的压力大,且对服务器的处理能力要求高,极易产生瓶颈效应。三是对数据的操作,需先将数据下载到本地,很难保证数据的一致性。

分布式系统是建立在网络之上的软件系统,具有高度的内聚性和透明性。内聚性是指每一个数据库分布节点高度自治;透明性是指每一个数据库分布节点对用户的应用来说都是透明的。根据分布存储和管理的对象,分布式系统分为分布式文件系统和分布式数据库系统两类。

2.1.1数据管理技术的发展HDFS(HadoopDistributedFileSystem)是一个基于Hadoop框架的分布式文件系统,具有高度容错性,适合部署在廉价的机器上。HDFS能提高吞吐量的数据访问,适合处理有着超大数据集的应用程序。HDFS有以下几个基本要素。

1.Block(数据块)

Block是HDFS中的基本存储单位,Hadoop架构下块的默认大小为64MB。每一个Block对应一个或多个Map的任务。

2.NameNode(名称节点)

NameNode维护HDFS存储文件数据的元信息,处理来自客户端对HDFS的各种操作的交互反馈。存储镜像(namespaceimage)文件和编辑日志(editlog)文件,这两个文件也会被持久化存储在本地硬盘。2.1.2HDFS概述3.SecondaryNameNode(从元数据节点)

SecondaryNameNode周期性保存NameNode的元数据检查点,这些元数据包括镜像文件FsImage数据和编辑日志editlog数据。如果NameNode节点故障,在NameNode下次启动时,会把FsImage加载到存中。

4.DateNode(数据节点)

DateNode是文件系统的工作节点,根据客户端或是NameNode的调度存储和检索数据。定期向NameNode发送所存储的块的列表。DataNode启动时会向NameNode报告当前存储的数据块信息,后续也会定时报告修改信息。DataNode之间会进行通信,复制数据块,默认3份,保证数据的冗余性。2.1.2HDFS概述5.NodeManager(节点管理程序)

NodeManager对它所在节点上的资源进行管理(CPU、内存、磁盘的利用情况)。定期向ResourceManager汇报该节点上的资源利用信息。监督Container(容器)的生命周期。监控每个Container的资源使用情况。追踪节点健康状况,管理日志和不同应用程序用到的附属服务(AuxiliaryService)。

6.ResourceManager(资源管理程序)

ResourceManager负责集群中所有资源的统一管理和分配。接收来自各个节点管理程序(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程疗(实际上是ApplicationManager)。2.1.2HDFS概述1.优点(1)高容错性(2)适合批处理(3)适合大数据处理(4)可构建在廉价机器上

2.缺点(1)低延迟数据访问,比如毫秒级,低延迟与高吞吐率。(2)小文件存取,占用NameNode大量内存,寻道时间超过读取时间。(3)并发写入、文件随机修改,一个文件只能有一个写者,仅支持append。2.1.3HDFS特点1.HDFS设计目标(1)存储非常大的文件

HDFS存储数据至少是几百M、G、或者TB级别。实际应用中已有很多集群存储的数据达到PB级别。(2)采用流式的数据访问方式

在HDFS中,应用程序对数据的访问采用批量出方式,而不是采用交互式的处理。(3)运行于商业硬件上

Hadoop的个设计目标是尽量降低系统的硬件成本,不需要运行在专用的、高可靠性的机器上,可运行于普通商用机器(可以从多家供应商采购)。2.1.4HDFS工作原理2.1.4HDFS工作原理

HDFS采用了主从(Master/Slaves)结构模型,一个HDFS集群包括一个NameNode和若干DataNode(如图2-1所示)。NameNode作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问,集群中的DataNode一般是一个节点,运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在NameNode的统一调度下进行数据块的创建、删除和复制等操作。每个DataNode的数据实际上是保存在本地Linux文件系统中的。每个DataNode会周期性地向NameNode发送“心跳”信息,报告自己的状态,没有按时发送心跳信息的DataNode会被标记为Dead。不会再给它分配任何读/写请求。2.HDFS体系架构2.1.4HDFS工作原理

2.1.5HDFS的读/写数据流程

1.读数据流程

HDFS可以直接使用FileSystem操作读取数据,或者使用URL来读取数据。下面以采用FileSystem方式介绍度数据的流程,如下图所示。2.1.4HDFS工作原理

2.1.5HDFS的读/写数据流程

2.写数据流程

在HDFS中,通过使用FileSystem类的create方法进行写数据操作。create方法返回一个输出流(FSDataOutputStream),使用输出流的getPos方法查看当前文件的位移,但是不能进行seek操作,HDFS仅支持追加操作。写数据的流程如图所示。2.1.4HDFS工作原理2.2分布式数据库系统HBase2.2分布式数据库系统HBase

2.2.1分布式关系型数据库系统的缺陷

在进入大数据时代后,集中式的数据存储逐渐被分布式的数据存储取代,而分布式的关系型数据库系统却难以适应大数据时代的要求,主要的原因有以下几点:

1.规模效应带来的压力

大数据时代,任何机型的单独一台计算机都很难满足大规模数据量的存储和管理。

2.数据类型的多样性和低价值密度性

大数据时代下的数据形式是多样的,且对数据的数量要求远大于对数据精度(质量)的要求,关系型数据库系统很难满足这些挑战。

3.设计理念的冲突

大数据应用的一个主要目的是,事前对将要发生的事情的“预测”。HBase(HadoopDatabase)是一个分布式的、面向列的开源数据库系统,不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

1.HBase特性(1)容量巨大

HBase的单表可以有百亿行、百万列,可以在横向和纵向两个维度插入数据,具有很大的弹性。当关系型数据库的单个表的记录在亿级时,查询和写入的性能都会呈现指数级下降,这种庞大的数据量对传统数据库来说是一种灾难,而HBase在限定某个列的情况下对于单表存储百亿甚至更多的数据都没有性能问题。2.2.2HBase简介1.HBase特性

(2)列存储

HBase是面向列的存储和权限控制的,它里面的每个列是单独存储的,且支持基于列的独立检索。在这种情况下,进行数据的插入和更新,行存储会相对容易。而进行行存储时,查询操作需要读取所有的数据,列存储则只需要读取相关列,可以大幅降低系统I/O吞吐量。

(3)稀疏性

在HBase中的数据都是以字符串形式存储的,为空的列并不占用存储空间,因此HBase的列存储解决了数据稀疏性的问题,在很大程度上节省了存储开销。所以HBase通常可以设计成稀疏矩阵,同时这种方式比较接近实际的应用场景。2.2.2HBase简介1.HBase特性

(4)扩展性强

HBase的扩展是横向的,横向扩展是指在扩展时不需要提升服务器本身的性能,只需添加服务器到现有集群即可,并且,HBase的扩展是热扩展,即在不停止现有服务的前提下,可以随时添加或者减少节点。(5)高可靠性

HBase运行在HDFS上,HDFS的多副本存储可以让它在岀现故障时自动恢复,同时HBase内部也提供WAL和Replication机制。WAL(Write-Ahead-Log)预写日志是在HBase服务器处理数据插入和删除的过程中用来记录操作内容的日志,保证了数据写入时不会因集群异常而导致写入数据的丢失。2.2.2HBase简介

2.HBase与传统关系数据库的区别(1)数据类型

HBase则采用了更加简单的数据模型,把描述每一行(记录)的数据转化为未经解释的字符串进行统一存储。(2)数据操作

HBase只有针对“行”的简单操作,如插入、查询、删除、清空等,不包含存在复杂的表与表之间的关系操作,淡化了复杂的表和表之间的关系。(3)存储模式

HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的,也就是说,一行(记录或对象)的数据可能存储在多个数据文件中。2.2.2HBase简介

2.HBase与传统关系数据库的区别(4)数据索引HBase只有一个索引——行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,这样虽然会使数据访问变慢,但其它操作却更加简单,如插入、删除等。(5)数据维护HBase在执行更新操作时,并不会删除旧版本的数据,而是生成一个新的版本,原来旧版本的数据仍然保留。这样设计的考虑主要是,旧版本的数据也蕴含着信息,也是有价值。(6)可伸缩性HBase在增加集群中节点的数量或扩展存储空间,都是非常轻而易举的事情,且在这一过程中,并不中断系统的应用。所以,分布式数据库系统HBase,比分布式关系型数据库系统具有更高的可伸缩性。2.2.2HBase简介HBase是一个稀疏的、长期存储的、多维度的、排序的映射表。这张表的索引是行键、列(列族:列限定符)和时间戳。HBase的数据都是字符串,没有类型。1.HBase的关键要素

(1)表

HBase采用表(table)来组织数据,有时为了与关系数据库的表相区分称为Bigtable。表同样由行和列组成,列被划分为若干列族。(2)行

每个HBase表都由若干行(row)组成,每个行由行键(rowkey)来标识。可以通过全表扫描、单个行键或一个行键的区域3种方式来访问表中的行。2.2.3HBase的数据模型关键要素1.HBase的关键要素(3)列族

一个HBase表被分组成许多“列族”(columnfamily)的集合,它是基本的访问控制单元。列族需要在表创建时进行定义。(4)列限定符列限定符(columnqualifier)是列族中数据的列索引,列族里的数据通过列限定符(或列)来定位。列限定符没有数据类型,一般被视为字节数组Byte[]。(5)单元格在HBase表中,通过行,列族和列限定符和时间戳或版本来确定一个“单元格(cell)。一个单元格中可以保存同一份数据的多个版本。(6)时间戳每个单元格都保存着同一份数据的多个版本,采用时间戳(timestamp)进行索引。2.2.3HBase的数据模型关键要素2.HBase的逻辑模型

以一张用来存储学生信息的HBase表为例,学号作为行键唯一标识每学生。表中存有两组数据:学生李明,学号1001,英语成绩100分,数学成绩80分;学生张三,学号1002,英语成绩100分,数学成绩90分。表中的数据通过一个行键、一个列族和列限定符进行索引和查询定位。即通过{rowkey,columnfamily,timestamp}可以唯一确定一个存储值,即一个键值对:{rowkey,columnfamily,timestamp}→value2.2.3HBase的数据模型关键要素2.HBase的逻辑模型

表2-2HBase数据逻辑模型--学生表行键列族“Sname”列族“course”时间戳valueMathEnglish1001

course:math

t380

Course:Englisht2100Sname

t1LiMing1002

course:math

t690

Course:Englisht5100Sname

t4ZhangSan2.2.3HBase的数据模型关键要素3.HBase的物理模型

表2-3HBase数据物理模型--学生表列族行键列限定符时间戳valueSname1001Snamet1LiMing1002Snamet4ZhangSanCourse1001matht380Englisht21001002matht690Englisht51002.2.3HBase的数据模型关键要素HBase和传统的关系型数据库(如MySQL)在数据模型上有何不同?在处理大规模数据集时,HBase相比关系型数据库有哪些优势?HBase采用主/从(Master/Slave)架构搭建集群,由一个主服务器(HMaster)节点、若干个区域服务器(HRegionServer)节点、一个分布式协调器(ZooKeeper)组成的集群,而在底层,它将数据存储于HDFS中,也可以将底层的存储配置为AzureBlobStorage(用来存放大量的像文本、图片、视频等非结构化数据的存储服务)或AmazonWebServices(亚马逊云计算服务)。1.ClientHBase客户端,包含访问hbase的接口。使用HBase的RPC机制与HMaster和HRegionServer进行通信。2.ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。2.2.4HBase的体系结构3.HMaster是HBase集群中的主服务器,负责监控集群中的所有RegionServer,并且是所有元数据更改的接口。4.HRegionServer是HBase集群中的区域服务器,维护Master分配给它的Region,处理对这些Region的I/O请求;并负责切分在运行过程中变得过大的Region。5.Store(HStore)Region是Master分配和管理的最小存储单元,但并不是最小的物理存储单元或数据读写单元。Region由一个或者多个Store组成,每个Store保存一个列族;6.HLogHBase使用日志(HLog)来应对突发情况。HBase要求用户更新数据必须先被记入日志后,才能写入MemStore缓存,并且直到MemStore缓存内容对应的日志已经被写人磁盘后,该缓存内容才会被刷新写人磁盘。2.2.4HBase的体系结构2.3大数据分布式数据仓库2.3.1数据仓库的特点1.效率足够高由于各种数据分析技术对数据源和分析结果都有严格的时间要求,日是最基本的时间周期,有时甚至以小时或更短的时间单位为周期,例如,大家最熟悉的天气预报,现在可以做到小时级。因此,要求数据仓库的数据存取以及更新效率足够高,否则无法满足应用的需求。2.数据质量数据仓库的最主要应用是为智能决策提供支持,常言道“失之毫厘,谬以千里”。因此,对数据仓库中数据的质量有严也要求,否则,由于有脏数据,将导致分析出错误的结果,制定出错误的决策,造成不可挽回的损失。3.扩展性由于数据分析、挖掘技术的发展迅速,且前途无量,在进行数据仓库系统架构设计时,要考虑到了未来3-5年的扩展性。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量增加时,系统无法运行。4.面向主题传统数据库的数据组织是面向事务处理的,且各个业务系统之间各自分离,而数据仓库中的数据是面向一定的主题进行组织的。主题是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的一种抽象,每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。2.3.1数据仓库的特点1.用户接口用户接口主要有三个:CLI,Client和WUI。其中最常用的是CLI,CLI启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至HiveServer。在启动Client模式的时候,需要指出HiveServer所在节点,并且在该节点启动HiveServer。WUI是通过浏览器访问Hive。2.元数据存储Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。2.3.2Hive的内部架构3.底层的DriverHive的核心是驱动引擎,完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。驱动引擎由四部分组成:(1)解释器:解释器的作用是将HiveSQL语句转换为抽象语法树(AST)。(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论