你好,游客 登录 注册 搜索
背景:
阅读新闻

大数据技术创新呈现“原创-开源-产品化”的阶梯格局

[日期:2014-05-27] 来源:36大数据  作者:佚名 [字体: ]

  (一) 大数据对传统数据处理技术体系提出挑战

  大数据来源于互联网、企业系统和物联网等信息系统,经过大数据处理系统的分析挖掘,产生新的知识用以支撑决策或业务的自动智能化运转。从数据在信息系统中的生命周期看,大数据从数据源经过分析挖掘到最终获得价值一般需要经过 5 个主要环节,包括数据准备、数据存储与管理、计算处理、数据分析和知识展现,技术体系如图 1所示。每个环节都面临不同程度的技术上的挑战。

  数据准备环节:在进行存储和处理之前,需要对数据进行清洗、整理,传统数据处理体系中称为 ETL ( Extracting ,Transforming,Loading)过程。与以往数据分析相比,大数据的来源多种多样,包括企业内部数据库、互联网数据和物联网数据,不仅数量庞大、格式不一,质量也良莠不齐。这就要求数据准备环节一方面要规范格式,便于后续存储管理,另一方面要在尽可能保留原有语义的情况下去粗取精、消除噪声。

  数据存储与管理环节:当前全球数据量正以每年超过 50%的速度增长,存储技术的成本和性能面临非常大的压力。大数据存储系统不仅需要以极低的成本存储海量数据,还要适应多样化的非结构化数据管理需求,具备数据格式上的可扩展性。

  计算处理环节:需要根据处理的数据类型和分析目标,采用适当的算法模型,快速处理数据。海量数据处理要消耗大量的计算资源,对于传统单机或并行计算技术来说,速度、可扩展性和成本上都难以适应大数据计算分析的新需求。分而治之的分布式计算成为大数据的主流计算架构,但在一些特定场景下的实时性还需要大幅提升。

  数据分析环节:数据分析环节需要从纷繁复杂的数据中发现规律提取新的知识,是大数据价值挖掘的关键。传统数据挖掘对象多是结构化、单一对象的小数据集,挖掘更侧重根据先验知识预先人工建立模型,然后依据既定模型进行分析。对于非结构化、多源异构的大数据集的分析,往往缺乏先验知识,很难建立显式的数学模型,这就需要发展更加智能的数据挖掘技术。

  知识展现环节:在大数据服务于决策支撑场景下,以直观的方式将分析结果呈现给用户,是大数据分析的重要环节。如何让复杂的分析结果易于理解是主要挑战。在嵌入多业务中的闭环大数据应用中,一般是由机器根据算法直接应用分析结果而无需人工干预,这种场景下知识展现环节则不是必需的。

  总的来看,大数据对数据准备环节和知识展现环节来说只是量的变化,并不需要根本性的变革。但大数据对数据分析、计算和存储三个环节影响较大,需要对技术架构和算法进行重构,是当前和未来一段时间大数据技术创新的焦点。下面简要分析上述 3 个环节面临的挑战及发展趋势。

  (二) 大数据存储、计算和分析技术是关键

  1.大数据存储管理技术

  数据的海量化和快增长特征是大数据对存储技术提出的首要挑战。这要求底层硬件架构和文件系统在性价比上要大大高于传统技术,并能够弹性扩展存储容量。但以往网络附着存储系统(NAS)和存储区域网络(SAN)等体系,存储和计算的物理设备分离,它们之间要通过网络接口连接,这导致在进行数据密集型计算(Data Intensive Computing)时 I/O 容易成为瓶颈。同时,传统的单机文件系统(如NTFS)和网络文件系统(如 NFS)要求一个文件系统的数据必须存储在一台物理机器上,且不提供数据冗余性,可扩展性、容错能力和并发读写能力难以满足大数据需求。

  谷歌文件系统(GFS)和 Hadoop 的分布式文件系统 HDFS(Hadoop Distributed File System)奠定了大数据存储技术的基础。与传统系统相比,GFS/HDFS 将计算和存储节点在物理上结合在一起,从而避免在数据密集计算中易形成的 I/O 吞吐量的制约,同时这类分布式存储系统的文件系统也采用了分布式架构,能达到较高的并发访问能力。存储架构的变化如图 2 所示。

  当前随着应用范围不断扩展,GFS 和 HDFS 也面临瓶颈。虽然 GFS和 HDFS 在大文件的追加(Append)写入和读取时能够获得很高的性能,但随机访问(random access)、海量小文件的频繁写入性能较低,因此其适用范围受限。业界当前和下一步的研究重点主要是在硬件上基于 SSD 等新型存储介质的存储体系架构,同时对现有分布式存储的文件系统进行改进,以提高随机访问、海量小文件存取等性能。

  大数据对存储技术提出的另一个挑战是多种数据格式的适应能力。格式多样化是大数据的主要特征之一,这就要求大数据存储管理系统能够适应对各种非结构化数据进行高效管理的需求。数据库的一致性(Consistency)、可用性(Availability)和分区容错性(Partition-Tolerance)不可能都达到最佳,在设计存储系统时,需要在 C、A、P 三者之间做出权衡。传统关系型数据库管理系统(RDBMS)以支持事务处理为主,采用了结构化数据表的管理方式,为满足强一致性(C)要求而牺牲了可用性(A)。

  为大数据设计的新型数据管理技术,如谷歌 BigTable 和 Hadoop HBase 等非关系型数据库(NoSQL,Not only SQL),通过使用“键-值(Key-Value)”对、文件等非二维表的结构,具有很好的包容性,适应了非结构化数据多样化的特点。同时,这类 NoSQL 数据库主要面向分析型业务,一致性要求可以降低,只要保证最终一致性即可,给并发性能的提升让出了空间。谷歌公司在 2012 年披露的 Spanner 数据库,通过原子钟实现全局精确时钟同步,可在全球任意位置部署,系统规模可达到 100 万~1000 万台机器。Spanner 能够提供较强的一致性,还支持 SQL 接口,代表了数据管理技术的新方向。整体来看,未来大数据的存储管理技术将进一步把关系型数据库的操作便捷性特点和非关系型数据库灵活性的特点结合起来,研发新的融合型存储管理技术。

  2.大数据并行计算技术

  大数据的分析挖掘是数据密集型计算,需要巨大的计算能力。与传统“数据简单、算法复杂”的高性能计算不同,大数据的计算是数据密集型计算,对计算单元和存储单元间的数据吞吐率要求极高,对性价比和扩展性的要求也非常高。传统依赖大型机和小型机的并行计算系统不仅成本高,数据吞吐量也难以满足大数据要求,同时靠提升单机 CPU 性能、增加内存、扩展磁盘等实现性能提升的纵向扩展(Scale Up)的方式也难以支撑平滑扩容。

  谷歌在 2004 年公开的 MapReduce 分布式并行计算技术,是新型分布式计算技术的代表。一个 MapReduce 系统由廉价的通用服务器构成,通过添加服务器节点可线性扩展系统的总处理能力(Scale Out),在成本和可扩展性上都有巨大的优势。谷歌的 MapReduce 是其内部网页索引、广告等核心系统的基础。之后出现的开源实现 Apache Hadoop MapReduce 是谷歌 MapReduce 的开源实现,目前已经成为目前应用最广泛的大数据计算软件平台。

  MapReduce 架构能够满足“先存储后处理”的离线批量计算(batch processing)需求,但也存在局限性,最大的问题是时延过大,难以适用于机器学习迭代、流处理等实时计算任务,也不适合针对大规模图数据等特定数据结构的快速运算。

  为此,业界在 MapReduce 基础上,提出了多种不同的并行计算技术路线,如图 3 所示。如 Yahoo 提出的 S4 系统、Twitter 的 Storm系统是针对“边到达边计算”的实时流计算(Real time streaming process)框架,可在一个时间窗口上对数据流进行在线实时分析,已经在实时广告、微博等系统中得到应用。谷歌 2010 年公布的 Dremel系统,是一种交互分析(Interactive Analysis)引擎,几秒钟就可完成 PB(1PB=1015B)级数据查询操作。此外,还出现了将 MapReduce内存化以提高实时性的 Spark 框架、针对大规模图数据进行了优化的Pregel 系统等等。

  针对不同计算场景建立和维护不同计算平台的做法,硬件资源难以复用,管理运维也很不方便,研发适合多种计算模型的通用架构成为业界的普遍诉求。为此,Apache Hadoop 社区在 2013 年 10 月发布的 Hadoop 2.0 中推出了新一代的 MapReduce 架构。新架构的主要变化是将旧版本 MapReduce 中的任务调度和资源管理功能分离,形成一层与任务无关的资源管理层(YARN)。如图 4 所示,YARN 对下负责物理资源的统一管理,对上可支持批处理、流处理、图计算等不同模型,为统一大数据平台的建立提供了新平台。基于新的统一资源管理层开发适应特定应用的计算模型,仍将是未来大数据计算技术发展的重点。

  3.大数据分析技术

  在人类全部数字化数据中,仅有非常小的一部分(约占总数据量的 1%)数值型数据得到了深入分析和挖掘(如回归、分类、聚类),大型互联网企业对网页索引、社交数据等半结构化数据进行了浅层分析(如排序)。占总量近 60%的语音、图片、视频等非结构化数据还难以进行有效的分析。

  大数据分析技术的发展需要在两个方面取得突破,一是对体量庞大的结构化和半结构化数据进行高效率的深度分析,挖掘隐性知识,如从自然语言构成的文本网页中理解和识别语义、情感、意图等;二是对非结构化数据进行分析,将海量复杂多源的语音、图像和视频数据转化为机器可识别的、具有明确语义的信息,进而从中提取有用的知识。

  目前的大数据分析主要有两条技术路线,一是凭借先验知识人工建立数学模型来分析数据,二是通过建立人工智能系统,使用大量样本数据进行训练,让机器代替人工获得从数据中提取知识的能力。由于占大数据主要部分的非结构化数据,往往模式不明且多变,因此难以靠人工建立数学模型去挖掘深藏其中的知识。

  通过人工智能和机器学习技术分析大数据,被业界认为具有很好的前景。2006 年谷歌等公司的科学家根据人脑认知过程的分层特性,提出增加人工神经网络层数和神经元节点数量,加大机器学习的规模,构建深度神经网络,可提高训练效果,并在后续试验中得到证实。这一事件引起工业界和学术界高度关注,使得神经网络技术重新成为数据分析技术的热点。目前,基于深度神经网络的机器学习技术已经在语音识别和图像识别方面取得了很好的效果。但未来深度学习要在大数据分析上广泛应用,还有大量理论和工程问题需要解决,主要包括模型的迁移适应能力,以及超大规模神经网络的工程实现等。

  (三) 大数据技术创新呈现“原创-开源-产品化”的阶梯格局

  当前,国际上大数据技术创新方面形成了独特的“互联网公司原创——开源扩散——IT 厂商产品化——其他企业使用”特点,如图 5所示。

大数据技术

  总结互联网企业在大数据技术创新方面的经验,如下几个方面值得关注:

  第一,丰富的数据和强大的平台是大数据创新的基础条件。以谷歌为例,它的数据资源极为丰富,拥有全球网页索引库,掌握几十亿用户的搜索行为数据,建立了高分辨率的谷歌地图数据数据库,拥有2014谷歌+社交数据和 YouTube 海量视频数据。谷歌的基础设施也十分强大,在全球拥有 36 个超大型数据中心,上百万台服务器。

  第二,大数据的应用效益不是飞跃突进的,必须依靠长期的不断累积。从搜索、广告和推荐等成熟应用来看,大数据的应用效果并非立竿见影,其巨大的效益是在日积月累的微小进步中逐渐形成的。

  第三,累积效益的获取,主要靠持续不断的技术迭代。互联网企业一直奉行敏捷开发、快速迭代的软件开发理念,往往在一两周内就能完成一个“规划、开发、测试、发布”的迭代周期。大型互联网企业通过这种长期持续“小步快跑”的研发方式,支撑了大数据应用效果的持续提升,建立了技术上的领先优势。

  第四,技术和应用一体化组织,是快速迭代的保障。互联网企业之所以能够保持高效率的持续技术演进,其研发和应用一体化的组织方式是很重要的因素。与传统行业“应用者——解决方案提供商”分离的组织形态不同,互联网企业省去了解决方案供应商环节,可以迅速将需求转化为解决方案。谷歌、百度等大型互联网企业的研发人员占比一般都在 50%~70%,远远高于其他类型的公司,这为技术开发提供了强大的后盾。

  最后,大数据技术发展与开源运动的结合也成为大数据技术创新中的一个鲜明特点。领先企业进行前沿创新,创新成果通过开源得到不断完善并向全社会辐射,原创与开源相得益彰,在国际上形成了一套高效运转的研发产业化体系。开源模式让人们“不必重复发明轮子”,能够降低研发和采购成本,还能够启发新的创意,加快再创新步伐。特别是开源 Apache Hadoop 的大范围应用,大大加速了大数据应用进程,一大批互联网公司和传统 IT 企业都从这种技术扩散体系中受益。在此背景下,国内大数据技术研发也应该把自主创新和开源结合起来,以更加开放的心态融入到国际大数据技术创新潮流中去。





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款