大数据基础 课件 单元3 大数据存储与计算_第1页
大数据基础 课件 单元3 大数据存储与计算_第2页
大数据基础 课件 单元3 大数据存储与计算_第3页
大数据基础 课件 单元3 大数据存储与计算_第4页
大数据基础 课件 单元3 大数据存储与计算_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.1.1分布式存储概述3.1.2HDFS工作原理3.1.3HDFS基础命令3.1分布式存储3.1.1分布式存储概述1集中式存储和分布式存储集中式存储就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。

集中式存储系统最大的特点就是部署结构简单,由于集中式系统往往基于底层性能卓越的大型主机,因此无需考虑如何对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作问题。3.1.1分布式存储概述1集中式存储和分布式存储分布式存储,是相对于集中式存储来说的,是将数据分散存储在多台独立的网络服务器上,这些服务器在空间部署上可以随意分布,可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。分布式存储系统采用可扩展的系统结构,满足了大数据应用存储的需要,能够利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。3.1.1分布式存储概述2分布式存储系统的特性分布式系统可以方便的扩展到几百台到几千台的集群规模,而且,随着集群规模的增长,系统整体性能表现为线性增长。可扩展分布式存储系统的自动容错、自动负载均衡机制使其可以构建在普通PC机之上。另外,线性扩展能力也使得增加、减少机器非常方便,可以使用较低的成本实现自动运维。低成本无论整个集群还是单机服务,都要求分布式系统具备高性能。高性能分布式存储系统需要提供易用的对外接口,另外也要求具备完善的监控、运维工具,并能够方便地与其它系统集成。易用3.1.1分布式存储概述

CAP理论加州大学伯克利分校的计算机教授EricBrewer在2000年提出,其核心思想是任何基于网络的数据共享系统最多只能满足数据一致性(Consistency)、可用性(Availability)和分区容忍性(PartitionTolerance)三个特性中的两个。3分布式存储系统面临的挑战3.1.1分布式存储概述3分布式存储系统面临的挑战是指保证系统中多个副本的数据完全一致的性质。数据一致性(Consistency)是指在系统中的一部分节点出现故障之后,系统的整体不影响客户端的读/写请求。可用性(Availability)是指容忍系统的网络出现分区,分区之间网络不可达。分区容忍性(PartitionTolerance)3.1.1分布式存储概述

分区容忍性一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。

提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里,容忍性就提高了。3分布式存储系统面临的挑战3.1.1分布式存储概述

一致性和可用性的矛盾由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。根据CAP理论,我们只能在一致性和可用性之间进行权衡。总之,数据存在的节点越多,分区容忍性越高,这就要求复制更新的数据就越多,一致性就越难保证。为了保证一致性,每次写操作就都要等待全部节点写成功,更新所有节点数据所需要的时间就越长,可用性就会降低。3分布式存储系统面临的挑战3.1.1分布式存储概述4分布式存储系统的分类

数据分类由于分布式存储系统所面临的数据需求相对复杂,大致可以分为三类:如所有格式的办公文档、文本、图片、图像、音频和视频信息等(1)非结构化数据一般存储在关系型数据库中,可以用二维关系表结构表示(2)结构化数据介于非结构化和结构化数据之间,如HTML,一般是自描述的(3)半结构化数据3.1.1分布式存储概述4分布式存储系统的分类互联网应用中,需要存储大量的图片、照片、视频等非结构化的数据,这类数据以对象的形式组织,对象之间没有关联。如Google的GFS和Hadoop的HDFS(1)分布式文件系统存储简单的半结构化数据,它只提供基于主键的CRUD功能,即根据主键创建、读取、更新或者删除一条键值记录。如Amazon的Dynamo以及Taobao的Tair。(2)分布式键值系统存储关系较为复杂的半结构化数据,与分布式键值系统相关,分布式表格系统不仅仅支持简单的CRUD操作,而且支持扫描某个主键范围.如Google的Bigtable。(3)分布式表格系统用于存储结构化数据。分布式数据库采用二维表格组织数据,并且提供SQL关系查询语言,支持多表关联,嵌套子查询等复杂的操作,并提供数据库事务以及并发控制。如MySQL数据库分片集群。(4)分布式数据库分布式存储按照处理不同类型的数据,大致可分为以下四类:《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.1.1分布式存储概述3.1.2HDFS工作原理3.1.3HDFS基础命令3.1分布式存储3.1.2HDFS工作原理2003年至2006年,Google发布了著名的三大论文,分别是:2003年发布的分布式文件系统GoogleFileSystem,2004年发布的分布式并行计算框架MapReduce,2006年发布的大型的分布式数据库Bigtable。

以三大论文为基础,演化出了开源项目Hadoop,Hadoop的核心是分布式文件存储系统HDFS和分布式并行计算框架MapReduce。3.1.2HDFS工作原理1HDFS概述

HDFS(HadoopDistributedFileSystem)HDFS全称Hadoop分布式文件系统,是由Google在2003年发布的分布式文件系统GoogleFileSystem论文基础上演化而来的开源版本。HDFS是Hadoop生态系统中非常重要的一环,它为管理大数据资源池和支撑相关大数据分析应用提供了一个具有高可靠性的工具。

3.1.2HDFS工作原理1HDFS概述

HDFS的优缺点

HDFS的优点:高容错性,数据自动保存多份;被设计为能够部署在低廉的硬件上;提供高吞吐量来访问应用程序的数据,适合处理大数据;流式文件访问,允许一次写入,多次读取;适合进行批处理。HDFS的缺点:不善于处理低延迟数据访问;不善于处理小文件存取;不支持并发写入,一个文件同时只能被一个写入者修改。3.1.2HDFS工作原理2HDFS中的基础概念HDFS中的存储单元是数据块,它的默认大小是64M,也就是HDFS中的文件是被分成一块块的64M的数据块存储的。数据块(Block)维护着文件系统树及整棵树内所有的文件和目录,并以两个文件形式永久保存在本地磁盘上:命名空间镜像和编辑日志。该节点也记录着每个文件中各个数据块所在的数据节点信息。元数据节点(NameNode)是真正存储数据的地方。客户端(client)和元数据节点可以向数据节点请求写入或者读出数据块。该节点也需要周期性的向元数据节点汇报其存储的数据块信息。数据节点(DataNode)主要功能是周期性的将元数据节点的命名空间镜像和编辑日志合并,以防日志文件过大;合并后的命名空间镜像也会在该节点保存一份。从元数据节点(SecondaryNameNode)3.1.2HDFS工作原理3HDFS中文件写入操作流程客户端(HDFSClient)元数据节点(NameNode)数据节点(DataNode)3.1.2HDFS工作原理4HDFS中文件读取操作流程客户端(HDFSClient)元数据节点(NameNode)数据节点(DataNode)《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.1.1分布式存储概述3.1.2HDFS工作原理3.1.3HDFS基础命令3.1分布式存储3.1.3HDFS基础命令1HDFS命令概述

HDFS提供了相当多的Shell操作命令,大大方便了程序员和系统管理员查看、修改HDFS上的文件。比如文件操作命令hdfsdfs、管理命令hdfsdfsadmin等。进一步,HDFS的操作命令和Unix/Linux的命令名称和格式相当一致,因而学习HDFS命令的成本也大为缩小。3.1.3HDFS基础命令2HDFS文件操作命令HDFS文件操作命令是hdfsdfs起始的高度类似linux文件操作的命令集。可以使用这些命令查看HDFS上的目录结构、上传和下载文件、创建文件夹、复制文件等。

查看目录结构命令lshdfsdfs-ls文件夹路径

功能:列出文件夹内的一层目录hdfsdfs-ls-R文件夹路径

功能:列出文件夹内的多层的所有目录例如:hdfsdfs-ls/home/zjiet例如:hdfsdfs-ls–R/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–mkdir文件夹路径功能:创建一个文件夹。如果路径中间的文件夹不存在,无法创建。hdfsdfs–mkdir-p文件夹路径功能:创建多层的文件夹。如果路径中间的文件夹不存在,多层的文件夹都会创建。

创建文件夹命令mkdir例如:hdfsdfs-mkdir/home/zjiet例如:hdfsdfs–mkdir-p/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–touchz文件路径

功能:创建一个文件。如果文件本就存在就失败。hdfsdfs–cat文件路径功能:查看文件内容。

创建文件命令touchz

查看文件内容命令cat例如:hdfsdfs-touchz/home/zjiet/news.txt例如:hdfsdfs-cat/home/zjiet/news.txt3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs-cp文件路径文件夹路径功能:复制一个文件到另一个文件夹内。

复制文件命令cp例如:hdfsdfs-cp/home/zjiet/news.txt

/home/zjiet23.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–rm文件功能:删除文件。

删除文件和目录命令rmhdfsdfs–rm–r文件夹路径功能:删除文件或文件夹内所有内容。例如:hdfsdfs-rm/home/zjiet/news.txt例如:hdfsdfs-rm–r/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–put本地路径HDFS系统路径功能:本地路径的文件上传到HDFS目录。

上传文件或目录命令put例如:hdfsdfs-put/centos/news.txt

/home/zjiet3.1.3HDFS基础命令2HDFS文件操作命令hdfsdfs–getHDFS系统路径本地路径功能:HDFS目录下的文件下载到本地路径

下载文件或目录命令get例如:hdfsdfs-get/home/zjiet/news.txt/centos《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.2.1分布式计算概述3.2.2MapReduce计算框架3.2分布式计算3.2.1分布式计算概述1分布式计算的定义分布式计算技术是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。3.2.1分布式计算概述2分布式计算的分类-批处理和流处理批处理流处理12按照对数据的处理时效分类实时产生的新的数据先被存储起来,在未来的某个时间一批批的处理。

它可以基于预定的时间间隔如每五分钟、或每天等处理一次,或在某些触发的条件下如新的数据容量达到预定规模等。实时产生的新的数据会被实时的一条条的处理,而不会等待到未来的某个时刻一批处理。

如今,越来越多的系统设计用于流处理,以支持近乎实时的事件处理。3.2.1分布式计算概述2分布式计算的分类-批处理和流处理

批处理和流处理之间差异的含义尽管流处理和批处理之间的差异似乎只是时间差异的问题。

但它们实际上对数据处理系统的体系结构和使用它们的应用程序都有着根本的影响。

流处理系统的设计是为了在数据到达时对其进行响应。这就要求它们实现一个由事件驱动的体系结构,即系统的内部工作流设计为在接收到数据后立即连续监视新数据和调度处理。

批处理系统中的内部工作流只定期检查新数据,并且只在下一个批处理窗口发生时处理该数据。3.2.1分布式计算概述2分布式计算的分类-批处理和流处理处理场景批处理通常适用于具有最新数据并不重要的用例,以及容忍较慢响应时间的情况。例如,对历史数据进行离线分析以计算结果或识别相关性是一种常见的批处理用例。流处理对于需要实时交互和实时响应的情况是必需的。金融交易处理,实时欺诈检测和实时定价是最适合流处理的示例。分布式计算概述3分布式计算常用框架

MapReduceHadoop的MapReduce是Google在2004年发布的分布式并行计算框架MapReduce论文的开源实现,是适合处理大级别量的离线数据批处理的分布式计算框架。它不适合处理大量的小文件和有实时性要求的任务。

目前市面上有很多大数据框架,有突出代表性的如批处理计算框架MapReduce,流处理计算框架Storm,以及混合处理型计算框架Spark。分布式计算概述3分布式计算常用框架

StormStorm是由类Lisp语言开发的一个用来处理实时的大数据的基于流处理的分布式计算框架。

它的出现在一定程度上结束了Hadoop的MapReduce的延迟比较大,后期程序运维复杂等特点,而且它还有MapReduce所不能支持的实时性、流式计算等特点。对一些实时性的数据分析,Storm具有非常高的效率。分布式计算概述3分布式计算常用框架

SparkSpark是使用Scala编写、基于RDD(ResilientDistributedDatasets)弹性分布式内存数据集的批处理的分布式计算框架。同时,Spark生态系统中还包括很多附加库,其中的SparkStreaming基于微批量方式的计算和处理,可以用于处理实时的流数据。

该框架基于内存计算,解决了在Hadoop的MapReduce计算框架中,执行迭代性质的任务效率比较低的弊端,除此之外该框架还提供了任务执行期间的交互查询,增加了任务的可控性。相比Hadoop,Spark除了提供计算的方法调用之外,还提供了更多的操作。《大数据基础》在线开放课程组《大数据基础》.移动商务营销课程群储与计算大数据存大数据基础Unit3《大数据基础》.移动商务营销课程群3.2.1分布式计算概述3.2.2MapReduce计算框架3.2分布式计算3.2.2MapReduce计算框架1MapReduce计算框架简介

MapReduce最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法。设计初衷主要是为了解决其搜索引擎中大规模网页数据的并行化处理。

但由于MapReduce可以普遍应用于很多大规模数据的计算问题,Google公司内部进一步将其广泛应用于很多大规模数据处理问题。

2004年,Google公司在国际会议上发表了MapReduce的论文,公布了基本原理和主要设计思想。3.2.2MapReduce计算框架1MapReduce计算框架简介在Google的MapReduce论文基础上,基于Java设计开发了开源MapReduce并行计算框架,和HDFS构成了Hadoop的核心。MapReduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。

Hadoop成为Apache开源组织下最重要的项目,自其推出后很快得到了全球学术界和工业界的普遍关注,并得到推广和普及应用。

3.2.2MapReduce计算框架2HadoopMapReduce的计算原理

MapReduce设计思想

MapReduce源于函数式语言中的内置函数map和reduce,把一个计算分成map与reduce两个计算过程,采用“分而治之”的设计思想。

它把一个大的计算任务划分为多个小的计算任务,然后把每个小的计算任务分配给集群的每个计算节点,并一直跟踪每个计算节点的进度决定是否重新执行该任务,最后收集每个节点上的计算结果并输出。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理

MapReduce计算过程

MapReduce计算过程可以分为Map阶段和Reduce阶段。Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。

更详细的,一个Map/Reduce作业(job)在输入数据、输出结果之间还经历了Split、Map、Shuffle、Reduce等阶段。MapReduce计算过程所处理的数据都是按键值对(<key,value>)存储和使用的。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultSplit阶段每个输入文件进行切分,分片输入到map。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultMap阶段执行map任务,任务的数量由分片决定。提供Map接口,可以由开发者对输入的数据进行处理,得到计算需要的map阶段的输出数据。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理MapReduce流程:Input->split->map->shuffle->reduce->resultShuffle阶段MapReduce的核心,是奇迹发生的地方。描述着数据从map任务的输出到reduce任务的输入之间这段过程,也称为“混洗”。分为map端操作和reduce端操作。3.2.2MapReduce计算框架2HadoopMapReduce的计算原理一个map的输出先写入缓存,当每次缓存快满时,由缓存溢写至磁盘,每次溢写都先进行分区,并对每个分区的数据进行排序(sort)和合并(combine)。最后,通知reduce任务来领取自己的分区。Shuffle的Map端操作每个reduce任务会从多个map任务领取分区,然后将这些文件进行归并(merge),交给reduce任务。Shuffle的Reduce端操作注意:设两个键值对<“a”,1>和<“a”,1>,如果合并(

温馨提示

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

评论

0/150

提交评论