《大数据基础技术概述4213684.pptx》由会员分享,可在线阅读,更多相关《大数据基础技术概述4213684.pptx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大数据基础技术概述日期:三月 23杭州华三通信技术有限公司夏飞 03621 2大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题3大数据处理的基本流程整个大数据的处理流程可以定义为:在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准进行统一存储,并利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展现给终端用户。具体来说,可以分为数据抽取与集成、数据分析以及数据解释。4数据抽取与集成l 大数据的一个重要特点就是多样性,这就意味着数据来源极其广泛,数据类型
2、极为繁杂。这种复杂的数据环境给大数据的处理带来极大的挑战。l 要想处理大数据,首先必须对所需数据源的数据进行抽取和集成,从中提取出关系和实体,经过关联和聚合之后采用统一定义的结构来存储这些数据。l 在数据集成和提取时需要对数据进行清洗,保证数据质量及可信性。l现有的数据抽取与集成方式可以大致分为以下四种类型:数据整合、数据联邦、数据传播和混合方法等。(1)数据整合(Data Consolidation):不同数据源的数据被物理地集成到数据目标。利用ETL工具把数据源中的数据批量地加载到数据仓库,就属于数据整合的方式。(2)数据联邦(Data Federation):在多个数据源的基础上建立一个
3、统一的逻辑视图,对外界应用屏蔽数据在各个数据源的分布细节。对于这些应用而言,只有一个统一的数据访问入口,但是实际上,被请求的数据只是逻辑意义上的集中,在物理上仍然分布在各个数据源中,只有被请求时,才临时从不同数据源获取相关数据,进行集成后提交给数据请求者。当数据整合方式代价太大或者为了满足一些突发的实时数据需求时,可以考虑采用数据联邦的方式建立企业范围内的全局统一数据视图。(3)数据传播(Data Propagation):数据在多个应用之间的传播。比如,在企业应用集成(EAI)解决方案中,不同应用之间可以通过传播消息进行交互。(4)混合方式(A Hybrid Approach):在这种方式中
4、,对于那些不同应用都使用的数据采用数据整合的方式进行集成,而对那些只有特定应用才使用的数据则采用数据联邦的方式进行集成。5数据分析传统的分析技术如数据挖掘、机器学习、统计分析等在大数据时代需要做出调整,因为这些技术在大数据时代面临着一些新的挑战,主要有:l数据量大并不一定意味着数据价值的增加,相反这往往意味着数据噪音的增多l大数据时代的算法需要进行调整(邦弗朗尼原理)l数据结果好坏的衡量 6数据解释数据分析是大数据处理的核心,但是用户往往更关心结果的展示。如果分析的结果正确但是没有采用适当的解释方法,则所得到的结果很可能让用户难以理解,极端情况下甚至会误导用户。l 大数据时代的数据分析结果往往
5、也是海量的,同时结果之间的关联关系极其复杂,采用传统的解释方法基本不可行l 可以考虑从下面两个方面提升数据解释能力:-引入可视化技术 -让用户能够在一定程度上了解和参与具体的分析过程 7大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题8大数据技术分类分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案,内存数据库等存储计算应用Map Reduce流流计算计算图计图计算算HIVE,pig,mahout,Sqoop以及以及ETL工具,统计与工具,统计与报告工报告工具等具等9Goog
6、le的技术演进Google 于2006 年首先提出了云计算的概念,并研发了一系列云计算技术和工具。难能可贵的是Google 并未将这些技术完全封闭,而是以论文的形式逐步公开其实现。正是这些公开的论文,使得以GFS、MapReduce、Bigtable 为代表的一系列大数据处理技术被广泛了解并得到应用,同时还催生出以Hadoop为代表的一系列云计算开源工具。下图展示了GoogleGoogle的技术演化过程:的技术演化过程:10大数据处理工具Hadoop 是目前最为流行的大数据处理平台。除了Hadoop,还有很多针对大数据的处理工具。这些工具有些是完整的处理平台,有些则是专门针对特定的大数据处理应
7、用。下表归纳总结了现今一些主流的处理平台和工具。11大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题12Hadoop简介lHadoop Hadoop 一个分布式系统基础架构,由一个分布式系统基础架构,由ApacheApache基金会开发基金会开发。lHadoopHadoop是一个开源的可运行于大规模集群上的分布式并是一个开源的可运行于大规模集群上的分布式并行编程框架,借助于行编程框架,借助于HadoopHadoop,程序员可以轻松地编写分,程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量
8、数布式并行程序,将其运行于计算机集群上,完成海量数据的计算据的计算。lHadoopHadoop已经发展成为目前最流行的大数据处理平台已经发展成为目前最流行的大数据处理平台 13Hadoop的作用和功能lHadoopHadoop采用了分布式存储方式,提高了读写速度,并扩采用了分布式存储方式,提高了读写速度,并扩大了存储容量。采用大了存储容量。采用MapReduceMapReduce来整合分布式文件系统上来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时,的数据,可保证分析和处理数据的高效。与此同时,HadoopHadoop还采用存储冗余数据的方式保证了数据的安全性还采用存储冗余数
9、据的方式保证了数据的安全性。lHadoopHadoop中中HDFSHDFS的高容错特性,以及它是基于的高容错特性,以及它是基于Java Java 语言开语言开发的,这使得发的,这使得HadoopHadoop可以部署在低廉的计算机集群中,可以部署在低廉的计算机集群中,同时不限于某个操作系统。同时不限于某个操作系统。HadoopHadoop中中HDFSHDFS的数据管理能的数据管理能力,力,MapReduceMapReduce处理任务时的高效率,以及它的开源特性,处理任务时的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩,并在众多行业和使其在同类的分布式系统中大放异彩,并在众多行业和科
10、研领域中被广泛采用。科研领域中被广泛采用。14Hadoop的优点l可扩展:不论是存储的可扩展还是计算的可扩展都是可扩展:不论是存储的可扩展还是计算的可扩展都是HadoopHadoop的设计的设计根本根本。l经济:框架可以运行在任何普通的经济:框架可以运行在任何普通的PCPC上上。l可靠:分布式文件系统的备份恢复机制以及可靠:分布式文件系统的备份恢复机制以及MapReduceMapReduce的任务监控保的任务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本数)数)l高效:分布式文件系统的高效数据交互实现以及高效:分布式文件系
11、统的高效数据交互实现以及MapReduceMapReduce结合结合Local DataLocal Data处理的模式,为高效处理海量的信息作了基础准备。处理的模式,为高效处理海量的信息作了基础准备。15Hadoop生态系统16Hadoop生态系统lAvroAvro用于数据序列化的系统用于数据序列化的系统;lHDFSHDFS是一种分布式文件系统,运行于大型商用机集群,是一种分布式文件系统,运行于大型商用机集群,HDFSHDFS为为HBaseHBase提供了高可靠性提供了高可靠性的底层存储支持;的底层存储支持;lHBaseHBase位于结构化存储层,是一个分布式的列存储数据库;位于结构化存储层,
12、是一个分布式的列存储数据库;lMapReduceMapReduce是一种分布式数据处理模式和执行环境,为是一种分布式数据处理模式和执行环境,为HBaseHBase提供了高性能的计算能力;提供了高性能的计算能力;lZookeeperZookeeper是一个分布式的、高可用性的协调服务,提供分布式锁之类的基本服务,是一个分布式的、高可用性的协调服务,提供分布式锁之类的基本服务,用于构建分布式应用,为用于构建分布式应用,为HBaseHBase提供了稳定服务和提供了稳定服务和failoverfailover机制;机制;lHiveHive是一个建立在是一个建立在Hadoop Hadoop 基础之上的数据
13、仓库,它提供了一些用于数据整理、特殊基础之上的数据仓库,它提供了一些用于数据整理、特殊查询和分析存储在查询和分析存储在Hadoop Hadoop 文件中的数据集的工具;文件中的数据集的工具;lPigPig是一种数据流语言和运行环境,用以检索非常大的数据集,大大简化了是一种数据流语言和运行环境,用以检索非常大的数据集,大大简化了HadoopHadoop常常见的工作任务;见的工作任务;lSqoopSqoop为为HBaseHBase提供了方便的提供了方便的RDBMSRDBMS数据导入功能,使得传统数据库数据向数据导入功能,使得传统数据库数据向HBaseHBase中迁移中迁移变的非常方便。变的非常方便
14、。17Hadoop的新发展lGoogleGoogle后后HadoopHadoop时代的新时代的新“三驾马车三驾马车”CaffeineCaffeine、PregelPregel、Dremel Dremel l在在20102010年,年,GoogleGoogle搜索引擎发生了重大变革。搜索引擎发生了重大变革。GoogleGoogle将其搜索迁移到新的将其搜索迁移到新的软件平台,他们称之为软件平台,他们称之为“Caffeine”Caffeine”(bigtablebigtable)。)。lPregelPregel主要绘制大量网上信息之间关系的主要绘制大量网上信息之间关系的“图形数据库图形数据库”lD
15、remelDremel可以在极快的速度处理网络规模的海量数据。据可以在极快的速度处理网络规模的海量数据。据GoogleGoogle提交的文件提交的文件显示你可以在几秒的时间处理显示你可以在几秒的时间处理PBPB级的数据查询。级的数据查询。18大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题19什么是流计算流计算来自于一个信念:流计算来自于一个信念:l数据的价值随着时间的流逝而降低,所以事件出现后必须尽快地对它们进行处理,最数据的价值随着时间的流逝而降低,所以事件出现后必须尽快地对它们进行处理,最好数据出现时
16、便立刻对其进行处理,发生一个事件进行一次处理,而不是缓存起来好数据出现时便立刻对其进行处理,发生一个事件进行一次处理,而不是缓存起来成一批再处理成一批再处理。流计算的概念:流计算的概念:l流计算是针对流式数据的实时计算。流计算是针对流式数据的实时计算。l流式数据(流数据):是指将数据看作数据流的形式来处理。数据流是在时间分布和流式数据(流数据):是指将数据看作数据流的形式来处理。数据流是在时间分布和数量上无限的一系列动态数据集合体;数据记录是数据流的最小组成单元。数量上无限的一系列动态数据集合体;数据记录是数据流的最小组成单元。l流数据具有数据实时持续不断到达、到达次序独立、数据来源众多格式复
17、杂、数据规流数据具有数据实时持续不断到达、到达次序独立、数据来源众多格式复杂、数据规模大且不十分关注存储、注重数据的整体价值而不关注个别数据等特点。模大且不十分关注存储、注重数据的整体价值而不关注个别数据等特点。20流计算的应用场景l流计算是针对流数据的实时计算,其主要应用在于产生大量流数据、同时对实时性要流计算是针对流数据的实时计算,其主要应用在于产生大量流数据、同时对实时性要求高的领域。求高的领域。l流计算一方面可应用于处理金融服务如股票交易、银行交易等产生的大量实时数据。流计算一方面可应用于处理金融服务如股票交易、银行交易等产生的大量实时数据。l另一方面流计算主要应用于各种实时另一方面流
18、计算主要应用于各种实时WebWeb服务中,如搜索引擎、购物网站的实时广告服务中,如搜索引擎、购物网站的实时广告推荐,推荐,SNSSNS社交类网站的实时个性化内容推荐,大型网站、网店的实时用户访问情况社交类网站的实时个性化内容推荐,大型网站、网店的实时用户访问情况分析等。分析等。21流计算与Hadoopl流计算与流计算与其他大数据解决方案的不同之处在于它的处理方式其他大数据解决方案的不同之处在于它的处理方式:lHadoop Hadoop 在本质上是一个批处理系统。数据被引入在本质上是一个批处理系统。数据被引入 Hadoop Hadoop 文件系统文件系统 (HDFS)(HDFS)并分发并分发到各
19、个节点进行处理。当处理完成时,结果数据返回到到各个节点进行处理。当处理完成时,结果数据返回到 HDFS HDFS 供始发者使用。供始发者使用。l流计算流计算支支持创建拓扑结构来转换没有终点的数据流。不同于持创建拓扑结构来转换没有终点的数据流。不同于 Hadoop Hadoop 作业,这些转换作业,这些转换从不停止,它们会持续处理到达的数据。从不停止,它们会持续处理到达的数据。l为了支持流式处理,为了支持流式处理,MapReduceMapReduce需要被改造成需要被改造成PipelinePipeline的模式,而不是的模式,而不是reducereduce直接输直接输出;考虑到效率,中间结果最好
20、只保存在内存中等等。这些改动使得原有的出;考虑到效率,中间结果最好只保存在内存中等等。这些改动使得原有的MapReduceMapReduce框架的复杂度大大增加,不利于系统的维护和扩展。框架的复杂度大大增加,不利于系统的维护和扩展。l用户被迫使用用户被迫使用MapReduceMapReduce的接口来定义流式作业,这使得用户程序的可伸缩性降低。的接口来定义流式作业,这使得用户程序的可伸缩性降低。22流计算模型l流计算实流计算实现了一种数据流模型,其中数据持续地流经一个转换实体网络。一个数据流现了一种数据流模型,其中数据持续地流经一个转换实体网络。一个数据流的抽象称为一个流,这是一个无限的元组序
21、列。元组就像一种使用一些附加的序列的抽象称为一个流,这是一个无限的元组序列。元组就像一种使用一些附加的序列化代码来表示标准数据类型(比如整数、浮点和字节数组)或用户定义类型的结构。化代码来表示标准数据类型(比如整数、浮点和字节数组)或用户定义类型的结构。每个流由一个惟每个流由一个惟一一IDID定定义,这义,这个个IDID可可用于构建数据源和接收器用于构建数据源和接收器 (sink)(sink)的拓扑结构。的拓扑结构。流起源于喷嘴,喷嘴将数据从外部来源流入流起源于喷嘴,喷嘴将数据从外部来源流入 流计算拓流计算拓扑结构中。接收器(或提供转扑结构中。接收器(或提供转换的实体)称为螺栓换的实体)称为螺
22、栓 l使用流计算为词频轻松地实现使用流计算为词频轻松地实现MapReduceMapReduce功能。如图中所示,喷嘴生成文本数据流,功能。如图中所示,喷嘴生成文本数据流,螺栓实现螺栓实现 Map Map 功能(令牌化一个流的各个单词)。来自功能(令牌化一个流的各个单词)。来自“map”map”螺栓的流然后流入螺栓的流然后流入一个实现一个实现 Reduce Reduce 功能的螺栓中(以将单词聚合到总数中)。功能的螺栓中(以将单词聚合到总数中)。23流计算产品l YahooYahoo的的S4S4 S4是一个通用的、分布式的、可扩展的、分区容错的、可插拔的流式系统,Yahoo!开发S4系统,主要是
23、为了解决:搜索广告的展现、处理用户的点击反馈。l TwitterTwitter的的stormstorm Twitter的storm:Storm是一个分布式的、容错的实时计算系统。Storm用途:可用于处理消息和更新数据库(流处理),在数据流上进行持续查询,并以流的形式返回结果到客户端(持续计算),并行化一个类似实时查询的热点查询(分布式的RPC)。24流计算产品ItemsProjectsYahoo!s4Twitter Storm协议协议Apache license 2.0Eclipse Public License 1.0开发语言开发语言JavaClojure,Java,Clojure编写了核
24、心代码编写了核心代码结构结构去中心化的对等结构去中心化的对等结构有中心节点有中心节点nimbus,但非关键,但非关键通信通信可插拔的通讯层,目前是基于可插拔的通讯层,目前是基于UDP的实现的实现基于基于facebook开源的开源的thrift框架框架事件事件/Stream序列,用户可自定义事件类序列,用户可自定义事件类提供提供Tuple类,用户不可自定义事件类,类,用户不可自定义事件类,但是可以命名但是可以命名field和注册序列化器和注册序列化器处理单元处理单元Processing Elements,内置,内置PE处理处理Bolt,没有内置任务,提供,没有内置任务,提供IBasicBolt处
25、理处理count,join和和aggregate等常见任务等常见任务自动自动ack第三方交互第三方交互提供提供API,Client Adapter/Driver,第三方客户端输,第三方客户端输入或者输出事件入或者输出事件定义定义Spout用于产生用于产生Stream,没有标准输出,没有标准输出API持久化持久化提供提供Persist API规范,可根据频率或者次数做持久化规范,可根据频率或者次数做持久化无特定无特定API,用户可自行选择处理,用户可自行选择处理可靠处理可靠处理无,可能会丢失事件无,可能会丢失事件提供对事件处理的可靠保证(可选)提供对事件处理的可靠保证(可选)多语言支持多语言支持
26、暂时只支持暂时只支持Java多语言支持良好,本身支持多语言支持良好,本身支持Java,Clojure,其他非其他非JVM语言通过语言通过thrift和进程间通讯和进程间通讯Failover部分支持,数据无法部分支持,数据无法failover部分支持,数据同样无法部分支持,数据同样无法failoverLoad Balance不支持不支持不支持不支持并行处理并行处理取决于节点数目,不可调节取决于节点数目,不可调节可配置可配置worker和和task数目,数目,storm会尽量将会尽量将worker和和task均匀分布均匀分布动态增删节点动态增删节点不支持不支持支持支持动态部署动态部署不支持不支持支
27、持支持web管理管理不支持不支持支持支持代码成熟度代码成熟度半成品半成品成熟成熟活跃度活跃度低低活跃活跃编程编程编程编程+XML配置配置纯编程纯编程25大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题26图计算遇到的问题l 大型图(像社交网络和网络图等)常常作为现在系统计算需要的一部分。现在存在许多图计算问题像最短路径、集群、网页排名、最小切割、连通分支等等,但还没有一个可扩展的通用系统来解决这些问题。l 解决这些问题的算法的特点:它们常常表现为比较差的内存访问局部性、针对单个顶点的处理工作过少、以及计算过
28、程中伴随着的并行度的改变等问题。l 可能的解决方法:1、为特定的图应用定制相应的分布式实现 2、基于现有的分布式计算平台 3、使用单机的图算法库如BGL,LEAD,NetworkX,JDSL,Standford,GraphBase,FGL等4、使用已有的并行图计算系统如Parallel BGL,CGMgraph等27图计算通用软件 正是因为传统的图计算解决方案无法解决大型图的计算问题,因此,就需要设计能够用来解决这些问题的通用图计算软件。针对大型图的计算,目前通用的图处理软件主要包括两种:第一种主要是基于遍历算法和实时的图数据库,如 Neo4j、OrientDB、DEX和 InfiniteGr
29、aph。第二种则是以图顶点为中心的消息传递批处理的并行引擎,如Hama、Golden Orb、Giraph和Pregel。28Tinkerpop 下图为Tinkerpor框架图,各层功能见下面的备注29BSP模型 以图顶点为中心的消息传递批处理的并行引擎主要是基于BSP(Bulk Synchronous Parallel)模型所实现的并行图处理包。BSP是由哈佛大学Viliant和牛津大学Bill McColl提出的并行计算模型。一个BSP模型由大量相互关联的处理器(processor)所组成,它们之间形成了一个通信网络。每个处理器都有快速的本地内存和不同的计算线程。一次BSP计算过程由一系列
30、全局超步组成,超步就是计算中一次迭代。每个超步主要包括三个组件:1、并发计算(Concurrent computation):每个参与的处理器都有自身的计算任务,它们只读取存储在本地内存的值。这些计算都是异步并且独立的。2、通讯(Communication):处理器群相互交换数据,交换的形式:由一方发起推送(put)和获取(get)操作。3、栅栏同步(Barrier synchronisation):当一个处理器遇到路障,会等到其他所有处理器完成它们的计算步骤。每一次同步也是一个超步的完成和下一个超步的开始。30大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算
31、介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题31NoSQL概念lNoSQL:意即反SQL运动,是一项全新的数据库革命性运动。NoSQL数据库,指的是非关系型的数据库。NoSQL项目的名字上看不出什么相同之处,但是,它们通常在某些方面相同:它们可以处理超大量的数据。l关系数据库的缺陷关系数据库并不适合所有的数据模型关系数据库扩展难度大标准化通常会伤害到性能lNoSQL的目标 反标准化,通常是无模式的,文档型存储以key/value为基础,支持通过key进行查找水平扩展内置复制HTTP/REST或很容易编程的API支持MapReduce风格的编程最终一致性32为什么需要NoSQL33No
32、SQL特点和挑战lNoSQL的特点 灵活的可扩展性大数据降低管理难度经济灵活的数据模型lNoSQL五大挑战成熟度支持分析和商业智能化管理专业知识l对NoSQL的质疑关系型数据库在设计时更能够体现实际开源数据库从出现到被用户接受需要一个漫长的过程NoSQL缺乏强有力的技术支持NoSQL很难实现数据的完整性34CAP理论35NoSQL与关系型数据库的比较36NoSQL与关系型数据库的比较37大数据基础技术概述l大数据处理的基本流程l大数据关键技术lHadoop介绍l流计算介绍l图计算介绍lNoSQL介绍l大数据面临的其他问题38大数据隐私问题隐私问题由来已久,计算机的出现使得越来越多的数据以数字化
33、的形式存储在电脑中,互联网的发展则使数据更加容易产生和传播,数据隐私问题越来越严重。l隐性的数据暴露:面临技术和人力(众包)的双重考验l数据公开与隐私保护的矛盾:隐私保护数据挖掘l数据动态性:现有隐私保护技术基于静态数据39大数据能耗问题在能源价格上涨、数据中心存储规模不断扩大的今天,高能耗已逐渐成为制约大数据快速发展的一个主要瓶颈。从已有的一些研究成果来看,可以考虑以下两个方面来改善大数据能耗问题:l采用新型低功耗硬件l引入可再生的新能源40大数据处理与硬件的协同硬件的快速升级换代有力的促进了大数据的发展,但是这也在一定程度上造成了大量不同架构硬件共存的局面。日益复杂的硬件环境给大数据管理带来的主要挑战有:l硬件异构性带来的大数据处理难题木桶效应:Mapreduce处理时间取决于处理时间最长的节点l新硬件给大数据处理带来的变革SSD,PCM41性能的测试基准目前尚未有针对大数据管理的测试基准,构建大数据测试基准面临的主要挑战有:l系统复杂度高l用户案例的多样性l数据规模庞大l系统的快速演变l重新构建还是复用现有的测试基准42谢谢!