1第2章大数据基础《云计算和大数据技术:概念应用与实战》第2章大数据基础人民邮电出版社21世纪高等院校云计算和大数据人才培养规划教材2第2章大数据基础大数据的典型应用示例大数据技术概述大数据中的集群技术云计算与大数据的发展2.12.2内容导航CONTENTS2.32.43第2章大数据基础2.1大数据技术概述——2.1.1大数据简介数据是指无法在可容忍的时间内用传统IT技术和软硬件工具对其进行感知、获取、管理、处理和服务的数据集合。这里传统的IT技术和软硬件工具是指单机计算模式和传统的数据分析算法。因此实现大数据的分析通常需要从两个方面来着手:①采用集群的方法来获取强大的数据分析能力;②研究面向大数据的新的数据分析算法。4第2章大数据基础2.1.2大数据产生的原因归纳起来大数据出现的原因有以下几点:数据生产方式变的自动化数据生产融入到每个人的日常生活图像、视频和音频数据所占的比例越来越大网络技术的发展为数据的生产提供了极大的方便云计算概念的出现进一步促进了大数据的发展服务器技术5第2章大数据基础2.1.3数据的计量单位计算机学科中我们一般采用0,1这样的二进制来表示数据信息,信息的最小单位是bit(比特),一个0或1就是一个比特,而8个bit就是一个Byte(字节),如10010111就是一个Byte。习惯在人们将小写的b表示bit,大写的B表示Byte。信息的计量一般以210为一个进制,如1024Byte=1KB(KiloByte)千字节。6第2章大数据基础1.1.1云计算简介更多常用的数据单位列表如下:数值换算单位名称1024B=1KB千字节(KiloByte)1024KB=1MB兆字节(MegaByte)1024MB=1GB吉字节(GigaByte)1024GB=1TB太字节(TeraByte)1024TB=1PB拍字节(PetaByte)1024PB=1EB艾字节(ExaByte)1024EB=1ZB皆字节(ZettaByte)1024ZB=1YB佑字节(YottaByte)1024YB=1NB诺字节(NonaByte)1024NB=1DB刀字节(DoggaByte)7第2章大数据基础2.1.4大数据是人类认识世界的新手段网络技术和计算机技术的发展使人类在近期获得了一种新的认识世界的手段,就是利用大量数据来发现新的规律,这种认识世界的方法被称为“第四范式”。大数据出现后人类认识世界的方法就达到以下四种。观测实验理论数据计算仿真计算萌发面向计算面向数据8第2章大数据基础2.1.5几类高性能计算系统对比分析特点科学计算系统批处理大数据系统流处理大数据系统分类面向计算的高性能计算面向数据的高性能计算面向数据的高性能计算基本架构集群集群集群常用结构主从结构主从结构主从结构实时性非实时计算非实时计算实时计算数据存储集中存储分布式存储内存存储文件系统无有无不同的高性能计算系统之间特点的比较:9第2章大数据基础2.1.5几类高性能计算系统对比分析迁移方式数据向计算迁移计算向数据迁移数据流式移动可用性无高可用性高可用性高可用性扩展性可扩展可扩展可扩展并行化方法计算并行数据并行流水线并行典型应用科学计算大数据分析实时数据分析单节点要求强弱强程序难度高低低典型系统MPIHadoopStorm不同的高性能计算系统之间特点的比较:10第2章大数据基础2.1.6主要的大数据处理系统大数据时代,数据查询分析计算系统需要具备对大规模数据实时或准实时查询的能力,数据规模的增长已经超出了传统关系型数据库的承载和处理能力。目前主要的数据查询分析计算系统包括HBase、Hive、Cassandra、Dremel、Shark、Hana等。1.数据查询分析计算系统11第2章大数据基础2.1.6主要的大数据处理系统MapReduce是被广泛使用的批处理计算模式。MapReduce对具有简单数据关系、易于划分的大数据采用“分而治之”的并行处理思想,将数据记录的处理分为Map和Reduce两个简单的抽象操作,提供了一个统一的并行计算框架。批处理系统将并行计算的实现进行封装,大大降低开发人员的并行程序设计难度。Hadoop和Spark是典型的批处理系统。2.批处理系统12第2章大数据基础2.1.6主要的大数据处理系统流式计算具有很强的实时性,需要对应用不断产生的数据实时进行处理,使数据不积压、不丢失,常用于处理电信、电力等行业应用以及互联网行业的访问日志等。Facebook的Scribe、Apache的Flume、Twitter的Storm、Yahoo的S4、UCBerkeley的SparkStreaming是常用的流式计算系统。3.流式计算系统13第2章大数据基础2.1.6主要的大数据处理系统针对MapReduce不支持迭代计算的缺陷,人们对Hadoop的MapReduce进行了大量改进,Haloop、iMapReduce、Twister、Spark是典型的迭代计算系统。4.迭代计算系统5.图计算系统社交网络、网页链接等包含具有复杂关系的图数据,这些图数据的规模巨大,可包含数十亿顶点和上百亿条边,图数据需要由专门的系统进行存储和计算。常用的图计算系统有Google公司的Pregel、Pregel的开源版本Giraph、微软的Trinity、BerkeleyAMPLab的GraphX以及高速图数据处理系统PowerGraph。14第2章大数据基础2.1.6主要的大数据处理系统随着内存价格的不断下降和服务器可配置内存容量的不断增长,使用内存计算完成高速的大数据处理已成为大数据处理的重要发展方向。目前常用的内存计算系统有分布式内存计算系统Spark、全内存式分布式数据库系统HANA、Google的可扩展交互式查询系统Dremel。6.内存计算系统15第2章大数据基础2.1.7大数据处理的基本流程16第2章大数据基础2.1.7大数据处理的基本流程由于大数据处理的数据来源类型丰富,大数据处理的第一步是对数据进行抽取和集成,从中提取出关系和实体,经过关联和聚合等操作,按照统一定义的格式对数据进行存储。现有的数据抽取和集成方法有四种:基于物化或ETL方法的引擎(MaterializationorETLEngine)基于联邦数据库或中间件方法的引擎(FederationEngineorMediator)基于数据流方法的引擎(StreamEngine)。1、数据抽取与集成流程117第2章大数据基础2.1.7大数据处理的基本流程数据分析是大数据处理流程的核心步骤,通过数据抽取和集成环节,我们已经从异构的数据源中获得了用于大数据处理的原始数据,用户可以根据自己的需求对这些数据进行分析处理,比如数据挖掘、机器学习、数据统计等,数据分析可以用于决策支持、商业智能、推荐系统、预测系统等。2.数据分析流程218第2章大数据基础2.1.7大数据处理的基本流程大数据处理流程中用户最关心的是数据处理的结果,正确的数据处理结果只有通过合适的展示方式才能被终端用户正确理解,因此数据处理结果的展示非常重要,可视化和人机交互是数据解释的主要技术。我们在开发调试程序的时候经常通过打印语句的方式来呈现结果,这种方式非常灵活、方便,但只有熟悉程序的人才能很好地理解打印结果。3.数据解释流程319第2章大数据基础大数据的典型应用示例大数据技术概述大数据中的集群技术云计算与大数据的发展2.12.2内容导航CONTENTS2.32.420第2章大数据基础2.2.1大数据在高能物理中的应用高能物理是一个天然需要面对大数据的学科,高能物理科学家往往需要从大量的数据中去发现一些小概率的粒子事件。目前世界上最大的高能物理实验装置是在日内瓦欧洲核子中心(CERN)的大型强子对撞机(LHC),其主要物理目标是寻找希格斯(Higgs)粒子。大型强子对撞机(LHC)21第2章大数据基础2.2.2推荐系统推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么东西,模拟销售人员帮助客户完成购买过程。我们经常在上网时看见网页某个位置出现一些商品推荐或者系统弹出一个商品信息,而且往往这些商品可能正是我们自己感兴趣或者正希望购买的商品,这就是推荐系统在发挥作用。22第2章大数据基础2.2.3搜索引擎系统搜索引擎是大家最为熟悉的大数据系统,成立于1998年的谷歌和成立于2000年的百度在简洁的用户界面下面隐藏着世界上最大规模的大数据系统。搜索引擎是简单与复杂的完美结合,目前最为常用的开源系统Hadoop就是按照谷歌的系统架构设计的。百度搜索引擎()23第2章大数据基础2.2.4百度迁徙百度迁徙是2014年百度利用其位置服务(LocationBasedService,LBS)所获得的数据,将人们在春节期间位置移动情况用可视化的方法显示在屏幕上如图所示。24第2章大数据基础大数据的典型应用示例大数据技术概述大数据中的集群技术云计算与大数据的发展2.12.2内容导航CONTENTS2.32.425第2章大数据基础1.3分布式系统中计算和数据的协作机制集群技术的采用成为了应对大数据挑战最为直接的方法,在CPU计算速度无法满足数据增长的需要时通过增加计算节点来解决从技术的角度讲是最为简单的,所以目前我们所见到的大数据系统基本都采用了集群架构。集群系统、并行计算一直以来被视为只有少数人才有能力和机会使用的高端设备,但是大数据的出现使集群系统逐步的进入了我们的日常生活。26第2章大数据基础2.3.1集群文件系统的基本概念目前常用的HDFS、GFS、Lustre等文件系统都属于集群文件系统。集群文件系统存储数据时并不是将数据放置于某一个节点存储设备上,而是将数据按一定的策略分布式地放置于不同物理节点的存储设备上。集群文件系统将系统中每个节点上的存储空间进行虚拟的整合,形成一个虚拟的全局逻辑目录,集群文件系统在进行文件存取时依据逻辑目录按文件系统内在的存储策略与物理存储位置对应,从而实现文件的定位。27第2章大数据基础2.3.1集群文件系统的基本概念1)利用集群文件系统可以将计算任务在数据的存储节点位置发起,从而避免了数据在网络上传输所造成的拥塞。2)集群文件系统可以充分利用各节点的物理存储空间,通过文件系统形成一个大规模的存储池,为用户提供一个统一的可弹性扩充的存储空间。在云计算系统中采用集群文件系统有以下几个优点3)利用集群文件系统的备份策略、数据切块策略可以实现数据存储的高可靠性以及数据读取的并行化,提高数据的安全性和数据的访问效率。4)利用集群文件系统可以实现利用廉价服务器构建大规模高可靠性存储的目标,通过备份机制保证数据的高可靠性和系统的高可用性。28第2章大数据基础2.3.2集群系统概述集群系统是一个互相通过网络连接起来的计算机(节点)所构成的分布式系统,集群中的每一个节点都具有独立的存储系统,和共享存储系统相比集群是一种松耦合的系统。集群系统现在是实现高性能计算主要方法,集群系统不只是计算的聚集也是存储的聚集。这里所指的分布式系统包括分布式计算和分布式存储。29第2章大数据基础2.3.2集群系统概述Beowulf集群是一种用作并行计算的集群架构,通常是由一台主节点和一台以上的子节点通过以太网或其他网络连接的系统,它采用市面上可以购买的普通硬件(例如装有Linux的PC)、标准以太网卡和交换机,它不包含任何特殊的硬件设备,可以重新组建。Beowulf系统与其他并行计算机的对比30第2章大数据基础2.3.2集群系统概述与专用的大型计算机系统相比大数据系统采用集群架构有以下几个优点:价格低廉1243系统扩展性好高可用性5系统连接简单系统灵活性高31第2章大数据基础2.3.3大数据并行计算的层次1.程序级并行一个数据分析任务能被切分为多个相互之间独立的计算任务并被分配给不同的节点进行处理,这种并行就叫程序级并行。程序级并行是一种粗粒度的并行,一个问题能实现程序级的并行意味着这个问题很容易在集群中被执行,并且由于被切分的任务的独立的,子问题之间所需要的通讯代价也是非常小的,不需要