APP下载

Hadoop宝刀未老

2015-12-20张贝贝

软件和集成电路 2015年11期
关键词:数据仓库开源分布式

本刊记者/张贝贝

Hadoop宝刀未老

本刊记者/张贝贝

随着越来越多新的开源技术的出现和应用,Hadoop似乎已经过了起初的“疯涨”期并逐步回归理性,但这并不意味着Hadoop这只黄色的“小象”过时了,企业基于Hadoop的开源平台部署大数据炙手可热。

Hadoop作为Apache软件基金会管理的开源软件平台,正在步入稳步、理性增长的阶段,越来越多的企业开始利用Hadoop落实在大数据、云计算方面的应用。当然,和其他开源技术一样,随着更多人使用,更多人贡献,开源社区才能不断完善,而如此良性循环才会促进更多开源技术的持续繁荣。如此说来,Hadoop与众多技术一样,也同样面临着自身的新陈代谢和相关新技术的挑战。

Hadoop成长记

Hadoop的诞生是与大数据紧紧绑定在一起的,为什么会这么说呢?这要从2002年说起,Hadoop的创始人Doug Cutting和Mike Cafarella开始开发一个网络搜索引擎:Nutch。但是,他们很快意识到最初的实现无法扩展。随后在2003到2004年,Google的两篇文章GFS(分布文件系统)和MapReduce(分布计算)横空出世。GFS介绍如何实现分布式地存储海量数据;MapReduce介绍如何对分布式大规模数据进行处理。很快Nutch实现算法被移植到使用MapReduce和NDFS (Nutch Distributed File System)来运行。2006年,他们从Nutch转移出来成为一个独立的Lucene子项目,称为Hadoop。2008年,Hadoop已成为 Apache顶级项目,随后打破世界纪录,成为最快排序1TB数据的系统。运行在一个910节点的群集,Hadoop在209秒内排序1TB的数据(还不到三分半钟)。由此,Hadoop作为一种开源的适合大数据的分布式存储和处理平台诞生了。

对于Hadoop,Apache给出的正式定义是:Hadoop被设计成能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。

如果从定义中解读Hadoop的特征,可以看出:Hadoop是一个开源的框架,能够进行大规模数据集的分布式处理;Hadoop可用计算机集群存储海量数据,具有能够检测和处理应用层错误的能力;Hadoop几乎完全是模块化的,架构灵活且保持高效。值得肯定的是,这些特征都为近年来火热的大数据应用落地起到了关键作用。于是,在某种意义上讲,大数据与Hadoop可以相提并论。

随着人类逐步进入大数据时代,海量的数据处理对现有软硬件系统提出了更高的要求,利用Hadoop构建的处理海量数据的分布式系统具有高容错性、可伸缩性、低成本和良好的扩展性等特点。尽管目前大数据技术还未形成统一标准,但业界已广泛使用Hadoop分布式系统作为云计算平台。

星环信息科技(上海)有限公司联合创始人兼首席技术官孙元浩

Hadoop的关键技术主要涉及分布式文件系统HDFS、分布式并行计算模型MapReduce和分布式数据库HBase。最初在互联网领域应用范围较广,包括Web搜索、广告系统、数据分析、机器学习、网页数据挖掘等许多任务都在Hadoop平台上运行。

到现在Hadoop已有16个年头,这对于一个实用技术的稳定发展已足够长久。事实上,不但在互联网领域,更在工业、商业、通信、金融、传媒等存在久远。

比如,零售业追踪和分析用户行为,提升客户体验、生产线上巨量传感器数据的接收分析、通信系统全程全网的实时日志文件采集与分析、医疗系统密集数据采集与分析,从而帮助快速地科学诊断……所有这些都需要新型的数据处理技术来支撑。Hadoop在这些领域突显了强大的竞争力,并在国内外的相关实践中获得广泛应用。

虽然在社交媒体的帮助下,零售商可以很容易地与客户进行沟通,但与社交媒体相比,Hadoop的出现使零售商与客户之间的互动变得更加容易。客户可直接进行意见反馈,广告可根据状态和搜索条件进行更为精准地投放。Hadoop能够扫描和存储交易数据,识别客户生活周期的不同阶段,帮助零售商降低库存成本,增加销量,吸引和维持客户群数量。

对于零售商来说,重要的是清楚公众对他们品牌的态度,这样能够有针对性地调整促销、广告、位置和相关策略。Hadoop可帮助存储和处理这些来自社交媒体网站和浏览器搜索的信息,从而提升零售商的实时洞察力。

在通用电气公司,数字媒体小组和Hadoop小组通力合作,为高度依赖高级情感分析功能的营销部门开发了一款交互式应用软件。此举目的在于,让营销小组能够通过通用电气开展的各项活动,评估外界对通用电气所持的看法(正面看法、中立看法或负面看法)。Hadoop负责支持该应用软件的情感分析部分,这部分对Hadoop来说是一种高度密集的文本挖掘应用环境。总体来看,通用电气的情感分析项目取得了重大成功,利用数据挖掘以及新平台所带来的一种新洞察力方面有了大幅改进,也为这家公司的下一代深度数据挖掘、分析和可视化等项目奠定了基础。

IBM开源大数据分析系统产品总监Steven Sit

Hadoop与大数据应用挑战

在十几年的发展中,基于Hadoop平台的大数据应用也遭遇了一些挑战,特别是企业级用户在落地方面出现了一些问题和困难,这也说明没有一个技术是完美的。对此,星环信息科技(上海)有限公司创始人兼首席技术官孙元浩有很深的感触。由于孙元浩创办的星环科技自成立到现在一直从事大数据核心平台数据库软件的研发与服务,所以在与众多企业级客户接触过程中深刻地感受到Hadoop应用中的难点和挑战。

一是当前的Hadoop开源版本易用性差,工具链上有很多环节缺失,需要通过弥补才能完善使用。对此,孙元浩认为,首先是因为缺乏完整的SQL支持,如果没有完整的SQL支持,已有的应用很难迁移过来,新的应用很难开发。“一个银行的客户,过去很多风控模型都是用SQL编写的,这些SQL模型已积累了很多年,现在已很少人能够理解这个模型原来的语义了,维护起来很困难。但当客户希望更换一个新的架构来运行的时候却发现,如果没有好的SQL支持,他们很难再把应用迁到新的平台上;第二,我们发现Hadoop中间是一个核心,中间有了一层SQL支持以后,上面的应用开发人员还需要一个完整的标准接口来访问这个数据库、新的数据架构,这些数据接口本身也并不完善;第三,由于开发人员借助丰富的中间件开发应用程序,不过这些中间件有些不能与Hadoop对接,应用开发人员在使用Hadoop过程中会面临很多不便。虽然很多厂商已经开始实现这些工具和Hadoop的对接,但是并非所有的功能都可运行在Hadoop上,为了实现更好的对接,各大工具厂商竭尽所能,使Hadoop的易用性逐渐提高。”

关于Hadoop的易用性,IBM开源大数据分析系统产品总监Steven Sit也提出了自己的思考,Hadoop社区在功能方面变得越来越成熟,但是在不同厂商之间的互操不太方便。于是就有了开放数据平台(Open Data Platform,ODP)的成立,其目标就是要进一步加强各个厂商之间的相互操作,特别是在Hadoop的堆栈上进行更好的相互操作。在未来如果一个企业实施一个Hadoop的解决方案,只要是在联盟的平台上,便能够确保这是一个互相认证的平台,能够让各厂商之间的相互操作变得很好。

Hadoop的第二个重要挑战是数据一致性。如果不解决这个问题,大数据就无法在关键应用中得到顺利的使用。据介绍,数据仓库主要分成两种,一种是传统的数据仓库,另一种是实时的数据仓库。在第一种场景当中通常是数据批量的导入到数据仓库当中,初次是批量导入,随后每隔一天或者几个小时把增量数据导入到传统数据仓库当中,需要对数据仓库进行修改或者插入。而对于最新的实时数据仓库来说,需要对这个数据进行实时插入和更新,这两个应用使得对数据平台的要求不大一样。

“我们发现,从本身来讲,批量更新通常是多个客户端、多个服务器同时对多台服务器进行更新,这样的操作我们称之为全球的分布式事务。例如,对一张已有的表进行插入和更新,根据用户原来的一些指标更新风险值或者信用值,这样的应用场景需要保证它的一致性,也意味着在操作的时候,要么就全部成功,要么就全部失败,不能因为一台机器出现故障,导致数据的不一致,这给很多金融类客户造成了困扰。”孙元浩说道。

三是技术人才方面的匮乏。很多客户都基于大数据的应用成立大数据分析部门,此团队通常需要三类人:第一类是需要对Hadoop比较了解,能够对数据进行加工、进行抽取编程的人。第二类是熟悉各类算法,能够对算法进行复杂应用、进行建模的人。第三类是业务人员,需要从业务角度提出一些需求。这三部分是必不可少的。那么问题来了,多种不同类型的人对数据进行挖掘、发现它的价值,最佳的方案是要简化,提供统一的语言、统一的工具,甚至业务人员都可以直接使用这个工具进行数据挖掘,这就提出了真正促进数据挖掘成为主流应用的方式。现实是在市场上找到这些技术人才并非容易。

总体来看,孙元浩提出的三大挑战,其中两大挑战是如何访问海量数据,通过SQL和R语言,让数据统计和数据挖掘变得更加可用、易用。但传统关键数据库的特性,在分布式数据库上仍能实现和保证,这使得以前的应用可方便地移植到新的平台上,同时可以借助新的学习和统计算法,发掘更多的价值。

Hadoop携手Spark迈向未来

据IBM硬件系统部SCO服务器及OEM业务销售总监林灿辉介绍,在整个大数据的架构中,Hadoop超过了64%,Spark占12%,由此可见,Hadoop和Spark是未来整个大数据的发展潮流。而根据大数据架构中所碰到的问题的占比,系统数据读写的瓶颈和系统的分析效率各占21%。这就需要一个稳健、敏捷的基础架构来解决系统效率低下问题的关键。

IBM硬件系统部SCO服务器及OEM业务销售总监林灿辉

Spark作为一个通用的并行计算框架,已经成为继Hadoop之后又一大热门开源项目,逐渐获得很多企业的支持。“Spark有三个主要的好处:一是让大家能够访问所有数据,包括关系库、大型机中的数据;二是提供一个基于内存的分析,有更好的性能;三是最重要的一点是统一的API,使得开发人员能够端到端地做开发、数据处理。通过Spark技术中心,IBM加强Spark的核,并开源了SystemML机器学习库,用于Spark。”IBM开源大数据分析系统,产品总监Steven Sit说道。

据介绍,IBM基于Spark和Hadoop构建了一个开放的分析平台Comprehensive Analytic Platform,能够充分使用客户计算能力,进行数据集成、数据处理、数据分类、验证和清理、时间分析等工作,支持Scale、Python。当然平台不限于编程,同时也提供图表工具用于分析,包括一些与客户紧密相关的概率分析。

由Spark和Hadoop携手将帮助企业充分利用开源的能力,挖掘业务交付价值,以及为企业提供企业级的能力和特性。那么洞察系统、记录系统和交互系统之间有什么样的关系?跟Hadoop、Spark和整体的分析有什么关系?

Steven Sit表示,Spark和Hadoop提供了这样一些事件或者分析能力,帮助企业分析他们的记录系统,能够找到实体DNA,这个实体可以是一个客户,企业都非常想知道更多关于客户的情况;也可以是物联网,比如来自于汽车的传感器信息等。通过一些事件了解更多实体的情况,且在洞察系统里的预测性分析,实现最佳效果。IBM称其为“可以嵌入的洞察系统”,可以放在系统的交互前端,比如呼叫中心、POS系统、网站和移动应用等。这对于用户来说是非常重要的,而客户实现“以流程为中心”到“以洞察为中心”的转变,需要构建在开源、开放的基础上,特别是在Spark和Hadoop上。

例如,保险公司,他们的系统需要记录大量的由远程通信及信息处理技术应用产生的,与驾驶者相关的数据,从而确定这个驾驶者的表现如何、开车是否总是加速或踩刹车,他偏向于白天或是晚上驾驶,是否会在高风险地区驾驶等问题,所有这些信息都能帮助企业了解驾驶者的驾驶危险程度,从而有针对性地对保单保费提供依据,这是非常好的利用大数据分析的业务场景。

大约两年前,当时Hadoop上未能实现的性能提升,现在在Spark上实现了。通过把Hadoop应用进行优化并利用Spark,客户的性能提升了40%以上,客户使用的系统资源更少了,从而能减少20%以上的系统资源消费,这是令人兴奋的一项工作。

Steven Sit补充道,“我们有一种叫Big Match的实践分析产品组合,通过来自社交媒体的客户信息,分析客户个人的属性变化,看他们是否有改变生活的事件,比如生孩子、买新车、搬家等。同时也会分析客户的个人兴趣、喜欢的餐厅等信息,这完全是基于Spark,能够让我们的计算速度更快、更加准确,为我们的客户交付差不多270万个潜在销售机会,这对于信用卡的发卡行和金融服务都有很大好处。这几个为数不多的案例证明了Hadoop和 Spark的领先性以及能够给客户所带来的关键价值。”

那么,我们大多数的企业在Hadoop和Spark的采用情况如何?五年前,多数Hadoop项目刚开始的时候,都是假设这是可以降低成本的方案,通过存储很多数据,实现基本的能力提升,比如高峰时间业务量的分析等。

随着时间的推移,从两年前开始,一些新兴模式开始出现,在企业里充分地利用Hadoop,特别是围绕“数据仓库的现代化(Warehouse Modernization)”。针对企业的异构数据源,Hadoop提供了“数据湖”的环境,企业能够摄取所有类型的数据。通过Hadoop分布式文件系统(Hadoop Distributed File System),利用Hadoop的计算能力,做数据转化或者缓存。

目前,在大数据解决方案里,人们希望通过Spark更好地实现风险或者保险领域的分析,由于Spark在数据分析方面的能力非常出色,Spark的特色在于它为大数据应用提供了一个统一的平台。

从数据处理层面看,模型可以分为批处理、交互式、流处理等多种方式;而从大数据平台而言,已有成熟的Hadoop、Cassandra、Mesos以及其他云的供应商。Spark整合了主要的数据处理模型,并能够很好地与现在主流的大数据平台集成。

因此,未来Hadoop携手Spark将为企业洞察业务创新提供更多的可能。

责任编辑:郭嘉凯

guojk@softic.com.cn

猜你喜欢

数据仓库开源分布式
基于数据仓库的数据倾斜解决方案研究
浅析分布式发电对电力系统的影响
五毛钱能买多少头牛
2019开源杰出贡献奖
基于预处理MUSIC算法的分布式阵列DOA估计
探析电力系统调度中数据仓库技术的应用
数据仓库系统设计与实现
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
分布式并联逆变器解耦电流下垂控制技术