Google在2004年创造了MapReduce,MapReduce集群可包括数以千计的并行操作的计算机。同时MapReduce允许程序员在如此庞大的集群中快速的转换数据并执行数据。
从MapReduce到Hadoop,这其中经历了一个有趣的转变。MapReduce最初是帮助搜索引擎公司应对万维网所带来的创建索引时产生的大量数据。Google最初也招募了一些硅谷的精英,并雇用了大批的工程师来完善MapReduce.并快速将技术应用在相关的行业之中,如金融、零售等。Goolge曾拿出MapReduce的部分相关信息与Nutch团队分享,以开发开源版本“Hadoop”。但Yahoo则将Nutch收入到旗下。Yahoo在2007年将其发展成Hadoop开源项目。Hadoop现在越来越多的用于大数据的大规模并行数据处理引擎。
现今大家都热衷于大数据领域。开源的项目如Apache Hive、Pig.以及像MapR和Hadapt这样的创业公司。众所周知,如果MapReduce和Hadoop中用来进行数据分析的应用编写起来过于复杂的话,那么就需要优秀程序员处理,这并不利于MapReduce技术的发展。所以现今所有Hadoop供应商都亟待解决的一个问题就是如何将MapReduce变得更易于使用。
企业大数据与敏捷大数据
从IT角度来看,信息结构类型大致经历了三次浪潮。必须注意这一点,新的浪潮并没取代旧浪潮,它们仍在不断发展,三种数据结构类型一直存在,只是其中一种结构类型往往主导于其他结构:
结构化信息——这种信息可以在关系数据库中找到,多年来一直主导着IT应用。这是关键任务OLTP系统业务所依赖的信息,另外,还可对结构数据库信息进行排序和查询;
半结构化信息——这是IT的第二次浪潮,包括电子邮件,文字处理文件以及大量保存和发布在网络上的信息。半结构化信息是以内容为基础,可以用于搜索,这也是谷歌存在的理由;
非结构化信息——该信息在本质形式上可认为主要是位映射数据。数据必须处于一种可感知的形式中(诸如可在音频、视频和多媒体文件中被听或被看)。许多大数据都是非结构化的,其庞大规模和复杂性需要高级分析工具来创建或利用一种更易于人们感知和交互的结构。
而面对网络中三种类型信息的挑战,大数据的发展趋势逐渐明朗。在今年9月于纽约召开的O‘Reilly Strata大会上就将发展趋势概括为企业大数据和敏捷大数据。企业大数据是最具挑战性的问题,也是企业盈利的需要解决的问题。而敏捷大数据是另外一个需要关注的问题。如Greenplum和Aster等在企业BI领域都有涉足。
如果事实证明大数据必须购买企业级的产品,那么就意味着大数据会花大本钱。但这并非绝对,通过使用大数据敏捷技术,各种规模的企业都可以控制成本,从大数据中获益。至关重要的是尽可能降低成本并最大化的了解大数据集,一旦数据被转化为可用便具有对业务的洞察力,然后以各种方式将问题汇总,并发挥企业技术的优势解决问题。
MapReduce易用性是其发展最大障碍
MapReduce系统获得成功的原因之一是它为编写需要大规模并行处理的代码提供了简单的编程模式。它受到了Lisp的函数编程特性和其他函数式语言的启发。MapReduce和云计算非常相配。MapReduce的关键特点是它能够对开发人员隐藏操作并行语义 — 并行编程的具体工作方式。
但现今,MapReduce很难成为商务人士讨论大数据的方式。因为要使用MapReduce至少需要以下四种技能。
1.将商业问题转换为可分析解决的问题
2.将可分析解决的问题转换为MapReduce模型
3.调试、编码、优化MapReduce以处理数据的能力
4.具备Hadoop和MapReduce的丰富经验,并具备调试部署在Hadoop上代码的能力
在大数据时代下,使用传统的数据库进行查询、排序、定义、和提取数据时显得有些力不从心。而处理大数据业务的本质(如MapReduce)需要更多的技能。但大批雇佣这些高技能人才是不现实的。
SQL与MapReduce 传统与现代的结合
SQL对于编程专家和业务分析师用来查询数据来说是非常熟悉的模式。而MapReduce的魅力在于有能力处理程序方案中相对复杂的搜索查询。如果将两者结合起来会带来什么样的变化?
Aster已经提供了一种被称为SQL-MapReduce的框架,这个框架可以使数据科学家和商业分析师对复杂的信息进行快速调查分析,允许一组关联计算机(计算机群集)使用软件语言(如 Java、C#、Python、C++ 和 R)并行进行程序表达,然后通过标准SQL 激活(调用)使用。
而Greenplum提供支持SQL和MapReduce并行处理功能,并能以较低的成本处理TB量级到PB量级企业数据。Greenplum整合了MapReduce和SQL技术,并且将直接在Greenplum的并行数据流引擎(位于Greenplum数据引擎的中心)内部直接执行MapReduce和SQL.Greenplum MapReduce可以使程序员对储存在Greenplum数据引擎内部和外部的PB量级规模的数据集进行分析。带来的好处是应对不断增长的标准编程模型来满足关系数据库的可靠性和熟悉性。
同时像微软这样的领导厂商也参与其中。微软已经推出了Hadoop与SQL Server的连接工具,客户将能够在Hadoop、SQL Server和并行数据仓换环境下相互交换数据。与此同时,微软还与Hortonworks展开深度合作。其目的就是为了将Hortonworks在Hadoop领域的专长以及微软产品易用化的特性有机的结合起来,并简化下载、安装和配置等几个Hadoop的相关技术。
未来随着SQL和MapReduce技术结合的不断完善,MapReduce将变得更容易使用,并广泛的受到关注。相信我,时间会证明一切。