大数据基础技术概述
大数据面临的其他问题大数据处理的基本流程整个大数据的处理流程可以定义为:在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准进行统一存储,并利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展现给终端用户。具体来说,可以分为数据抽取与集成、数据分析以及数据解释。大数据的一个重要特点就是多样性,这就意味着数据来源极其广泛,数据类型极为繁杂。这种复杂的数据环境给大数据的处理带来极大的挑战。要想处理大数据,首先必须对所需数据源的数据进行抽取和集成,从中提取出关系和实体,经过关联和聚合之后采用统一定义的结构来存储这些数据。在数据集成和提取时需要对数据进行清洗,保证数据质量及可信性。现有的数据抽取与集成方式可以大致分为以下四种类型:数据整合、数据联邦、数据传播和混合方法等。数据整合(DataConsolidation):不同数据源的数据被物理地集成到数据目标。利用ETL工具把数据源中的数据批量地加载到数据仓库,就属于数据整合的方式。(2)数据联邦(DataFederation):在多个数据源的基础上建立一个统一的逻辑视图,对外界应用屏蔽数据在各个数据源的分布细节。 对于这些应用而言,只有一个统一的数据访问入口,但是实际上,被请求的数据只是逻辑意义上的集中,在物理上仍然分布在各个数据源中,只有被请求时,才临时从不同数据源获取相关数据,进行集成后提交给数据请求者。当数据整合方式代价太大或者为了满足一些突发的实时数据需求时,可以考虑采用数据联邦的方式建立企业范围内的全局统一数据视图。(3)数据传播(DataPropagation):数据在多个应用之间的传播。比如,在企业应用集成(EAI)解决方案中,不同应用之间可以通过传播消息进行交互。(4)混合方式(AHybridApproach):在这种方式中,对于那些不同应用都使用的数据采用数据整合的方式进行集成,而对那些只有特定应用才使用的数据则采用数据联邦的方式进行集成。数据分析传统的分析技术如数据挖掘、机器学习、统计分析等在大数据时代需要做出调整,因为这些技术在大数据时代面临着一些新的挑战,主要有:数据量大并不一定意味着数据价值的增加,相反这往往意味着数据噪音的增多大数据时代的算法需要进行调整(邦弗朗尼原理)数据结果好坏的衡量数据解释数据分析是大数据处理的核心,但是用户往往更关心结果的展示。如果分析的结果正确但是没有采用适当的解释方法,则所得到的结果很可能让用户难以理解,极端情况下甚至会误导用户。 大数据时代的数据分析结果往往也是海量的,同时结果之间的关联关系极其复杂,采用传统的解释方法基本不可行让用户能够在一定程度上了解和参与具体的分析过程大数据面临的其他问题大数据技术分类分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案,内存数据库等存储计算应用MapReduce流计算图计算HIVE,pig,mahout,Sqoop以及ETL工具,统计与报告工具等的技术演进Google于2006年首先提出了云计算的概念,并研发了一系列云计算技术和工具。难能可贵的是Google并未将这些技术完全封闭,而是以论文的形式逐步公开其实现。正是这些公开的论文,使得以GFS、MapReduce、Bigtable为代表的一系列大数据处理技术被广泛了解并得到应用,同时还催生出以Hadoop为代表的一系列云计算开源工具。下图展示了Google的技术演化过程:大数据处理工具Hadoop是目前最为流行的大数据处理平台。除了Hadoop,还有很多针对大数据的处理工具。这些工具有些是完整的处理平台,有些则是专门针对特定的大数据处理应用。下表归纳总结了现今一些主流的处理平台和工具。大数据基础技术概述大数据面临的其他问题简介Hadoop一个分布式系统基础架构,由Apache基金会开Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,借助于Hadoop,程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。 Hadoop已经发展成为目前最流行的大数据处理平台的作用和功能Hadoop采用了分布式存储方式,提高了读写速度,并扩大了存储容量。采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时,Hadoop还采用存储冗余数据的方式保证了数据的安全性。Hadoop中HDFS的高容错特性,以及它是基于Java语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。Hadoop中HDFS的数据管理能力,MapReduce处理任务时的高效率大数据概述,以及它的开源特性,使其在同类的分布式系统中大放异彩,并在众多行业和科研领域中被广泛采用。的优点可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本高效:分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备。生态系统生态系统HDFS是一种分布式文件系统,运行于大型商用机集群,HDFS为HBase提供了高可靠性的底层存储支持;Zookeeper是一个分布式的、高可用性的协调服务,提供分布式锁之类的基本服务,用于构建分布式应用,为HBase提供了稳定服务和failover机制;Hive是一个建立在Hadoop基础之上的数据仓库,它提供了一些用于数据整理、特殊查询和分析存储在Hadoop文件中的数据集的工具;Pig是一种数据流语言和运行环境,用以检索非常大的数据集,大大简化了Hadoop常见的工作任务;Sqoop为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。 的新发展在2010年,Google搜索引擎发生了重大变革。Google将其搜索迁移到新的软件平台,他们称之为“Caffeine”(bigtable)。Dremel可以在极快的速度处理网络规模的海量数据。据Google提交的文件显示你可以在几秒的时间处理PB级的数据查询。大数据基础技术概述大数据面临的其他问题 18 什么是流计算 流计算来自于一个信念: 数据的价值随着时间的流逝而降低,所以事件出现后必须尽快地对它们进行处理,最好数据出现时便立刻对其进行处理,发生一个事件进行一次处理,而不是缓存起 来成一批再处理。 流计算的概念: 流式数据(流数据):是指将数据看作数据流的形式来处理。数据流是在时间分布和数量上无限的一系列动态数据集合体;数据记录是数据流的最小组成单元。 流数据具有数据实时持续不断到达、到达次序独立、数据来源众多格式复杂、数据规模大且不十分关注存储、注重数据的整体价值而不关注个别数据等特点。 19 流计算的应用场景 流计算是针对流数据的实时计算,其主要应用在于产生大量流数据、同时对实时性要求高的领域。 另一方面流计算主要应用于各种实时Web服务中,如搜索引擎、购物网站的实时广告推荐,SNS社交类网站的实时个性化内容推荐,大型网站、网店的实时用户访问情况 分析等。 20 流计算与Hadoop Hadoop在本质上是一个批处理系统。数据被引入 Hadoop 文件系统 (HDFS) 并分发 到各个节点进行处理。当处理完成时,结果数据返回到 HDFS 供始发者使用。 流计算支持创建拓扑结构来转换没有终点的数据流。不同于Hadoop 作业,这些转 换从不停止,它们会持续处理到达的数据。 为了支持流式处理,MapReduce需要被改造成Pipeline的模式,而不是reduce直接输出;考虑到效率,中间结果最好只保存在内存中等等。这些改动使得原有的 MapReduce框架的复杂度大大增加,不利于系统的维护和扩展。 用户被迫使用MapReduce的接口来定义流式作业,这使得用户程序的可伸缩性降低。 21 流计算模型 流计算实现了一种数据流模型,其中数据持续地流经一个转换实体网络。一个数据流的抽象称为一个流,这是一个无限的元组序列。元组就像一种使用一些附加的序 列化代码来表示标准数据类型(比如整数、浮点和字节数组)或用户定义类型的结 构。每个流由一个惟一ID定义,这个ID可用于构建数据源和接收器 (sink) 的拓扑 结构。流起源于喷嘴,喷嘴将数据从外部来源流入 流计算拓扑结构中。 接收器(或 提供转换的实体)称为螺栓 使用流计算为词频轻松地实现MapReduce功能。如图中所示,喷嘴生成文本数据流,螺栓实现 Map 功能(令牌化一个流的各个单词)。来自“map”螺栓的流然后流入一 个实现 Reduce 功能的螺栓中(以将单词聚合到总数中)。 22 流计算产品 Yahoo的S4S4是一个通用的、分布式的、可扩展的、分区容错的、可插拔的流 式系统,Yahoo!开发S4系统,主要是为了解决:搜索广告的展现、处 理用户的点击反馈。 Twitter的stormTwitter的storm:Storm是一个分布式的、容错的实时计算系统。 Storm用途:可用于处理消息和更新数据库(流处理),在数据流上 进行持续查询,并以流的形式返回结果到客户端(持续计算),并行化 一个类似实时查询的热点查询(分布式的RPC)。 23 流计算产品 Items\Projects Yahoo! s4 Twitter Storm 协议 Apache license 2.0 Eclipse Public License 1.0 开发语言 Java Clojure,Java,Clojure编写了核心代码 结构 去中心化的对等结构 有中心节点nimbus,但非关键 通信 可插拔的通讯层,目前是基于UDP的实现 基于facebook开源的thrift框架 事件/Stream 序列,用户可自定义事件类 提供Tuple类,用户不可自定义事件类, 但是可以命名field和注册序列化器 处理单元 Processing Elements,内置PE处理 Bolt,没有内置任务,提供IBasicBolt处理 count,join和aggregate等常见任务 自动ack 第三方交互 提供API,Client Adapter/Driver,第三方客户端输 入或者输出事件 定义Spout用于产生Stream,没有标准输出API 持久化 提供Persist API规范,可根据频率或者次数做持久化 无特定API,用户可自行选择处理 可靠处理 无,可能会丢失事件 提供对事件处理的可靠保证(可选) 多语言支持 暂时只支持Java 多语言支持良好,本身支持Java,Clojure, 其他非JVM语言通过thrift和进程间通讯 Failover 部分支持,数据无法failover 部分支持,数据同样无法failover Load Balance 不支持 不支持 并行处理 取决于节点数目,不可调节 可配置worker和task数目,storm会尽量将worker和task 均匀分布 动态增删节点 不支持 支持 动态部署 不支持 支持 web管理 不支持 支持 代码成熟度 半成品 成熟 活跃度 活跃编程 编程+ XML配置 纯编程 24 大数据基础技术概述 大数据面临的其他问题 25 图计算遇到的问题 大型图(像社交网络和网络图等)常常作为现在系统计算需要的一部分。 现在存在许多图计算问题像最短路径、集群、网页排名、最小切割、连通分支等 等,但还没有一个可扩展的通用系统来解决这些问题。 解决这些问题的算法的特点:它们常常表现为比较差的内存访问局部性、针对单个顶点的处理工作过少、以及计算过程中伴随着的并行度的改变等问题。 3、使用单机的图算法库——如BGL,LEAD,NetworkX,JDSL,Standford,GraphBase,FGL等 4、使用已有的并行图计算系统——如Parallel BGL,CGMgraph等 26 图计算通用软件 正是因为传统的图计算解决方案无法解决大型图的计算问题,因此, 就需要设计能够用来解决这些问题的通用图计算软件。 针对大型图的计算,目前通用的图处理软件主要包括两种: 第一种主要是基于遍历算法和实时的图数据库,如Neo4j OrientDB、DEX和InfiniteGraph。第二种则是以图顶点为中心的消息传递批处理的并行引擎,如 Hama、Golden Orb、Giraph和Pregel。 27 Tinkerpop 下图为Tinkerpor框架图,各层功能见下面的备注 28 BSP模型 以图顶点为中心的消息传递批处理的并行引 擎主要是基于BSP(Bulk Synchronous Parallel) 模型所实现的并行图处理包。 BSP是由哈佛大学 Viliant和牛津大学Bill McColl提出的并行计算模 型。一个BSP模型由大量相互关联的处理器 (processor)所组成,它们之间形成了一个通信网 络。每个处理器都有快速的本地内存和不同的计 算线程。一次BSP计算过程由一系列全局超步组 成,超步就是计算中一次迭代。每个超步主要包 括三个组件: 1、并发计算(Concurrent computation):每个 参与的处理器都有自身的计算任务,它们只读取 存储在本地内存的值。这些计算都是异步并且独 2、通讯(Communication):处理器群相互交换数 据,交换的形式:由一方发起推送(put)和获取 (get)操作。 3、栅栏同步(Barrier synchronisation): 当一个 处理器遇到路障,会等到其他所有处理器完成它 们的计算步骤。每一次同步也是一个超步的完成 和下一个超步的开始。 29 大数据基础技术概述 大数据面临的其他问题 30 NoSQL概念 NoSQL:意即反SQL运动,是一项全新的数据库革命性运动。NoSQL数据库,指的是非关系型的数据库。NoSQL项目的名字上看不出什么相同之处,但是,它们通常在某些方面相同:它们可以 处理超大量的数据。 最终一致性 31 为什么需要NoSQL 32 NoSQL特点和挑战 开源数据库从出现到被用户接叐需要一个漫长的过程 NoSQL很难实现数据的完整性 33 CAP理论 34 NoSQL与关系型数据库的比较 35 NoSQL与关系型数据库的比较 36 大数据基础技术概述 大数据面临的其他问题 37 大数据隐私问题 隐私问题由来已久,计算机的出现使得越来越多的数据以数字化的形 式存储在电脑中,互联网的収展则使数据更加容易产生和传播,数据 隐私问题越来越严重。 数据动态性:现有隐私保护技术基于静态数据 38 大数据能耗问题 在能源价格上涨、数据中心存储规模丌断扩大的今天,高能耗已逐渐 成为制约大数据快速収展的一个主要瓶颈。 从已有的一些研究成果来看,可以考虑以下两个方面来改善大数据能 耗问题: 引入可再生的新能源 39 大数据处理与硬件的协同 硬件的快速升级换代有力的促迚了大数据的収展,但是这也在一定程 度上造成了大量丌同架构硬件共存的局面。日益复杂的硬件环境给大 数据管理带来的主要挑战有: SSD,PCM 40 性能的测试基准 目前尚未有针对大数据管理的测试基准,构建大数据测试基准面临的主要挑 重新构建还是复用现有的测试基准 41 谢谢! (编辑:52站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |