大数据是眼下很多企业面临的一个挑战,由于数据量非常巨大,而且数据类型异常复杂,传统的基于关系型数据库的存储和分析办法显露出不足。 Hadoop的出现给人们带来解决大数据问题的希望,特别是一批著名的大企业,如谷歌、雅虎、JP摩根大通等,成功地利用Hadoop开发出了开源的大数据管理系统,让人们看到了Hadoop在解决大数据难题时的巨大潜力,很多企业纷纷决定引入Hadoop,来解决自己的大数据难题。
不过,专家提醒,在决定利用Hadoop构建自己的大数据管理系统之前,一定要确保自己充分了解Hadoop。采用Hadoop之前最好先对技术人员进行必要的培训,以确保技术人员具备必要的数据分析专业知识。显然,并不是所有的企业都能成功地开发和部署Hadoop应用的。目前,Hadoop还是一个刚刚起步的市场,有很多厂商提供与Hadoop有关的产品和服务,其中有些是基于云的SaaS服务。
最重要的是,一定不要盲目跟风,每个企业都有自己的特殊需求,都有自己的技术条件。根据Forrester的市场调查,目前,在美国只有1%的Hadoop项目是真正应用于生产环境中的。“这个数据肯定将在未来一年翻一番或两番。” Forrester分析师吉姆·库贝勒斯(James Kobielus)表示。他呼吁企业要保持谨慎,因为相关的技术还在演进之中,技术更新非常快。
可以肯定的是,与传统的数据库管理系统相比,Hadoop有自己的优势,尤其是它既能处理关系数据库中的结构化数据,同时也能处理诸如音视频等非结构化数据,而后者在现实世界中普遍存在,要远远比结构化数据更为常见。Hadoop系统还可以根据数据的规模和问题的复杂程度轻松地扩展。
“Hadoop的应用真正改变了我们对数据的理解和使用方式。” eBay用户体验、搜索和平台副总裁休·威廉姆斯(Hugh Williams)表示。eBay如今拥有的数据量高达9个PB,这些数据既有Terabyte系统所产生的结构化数据,同时也有Hadoop系统产生的非结构化数据。
“你可以在同样的硬件资源上运行各种不同类型的工作负载。相比而言,在Hadoop之前我们使用硬件资源的方式太呆板、太不灵活了。”威廉姆斯说,“如今,你能以一种与过去完全不同的方式来充分发挥集群的计算能力。这将大大降低公司创新的门槛,从而有助于组织的创新。 Hadoop功能太强了。”
随需求增长自由扩展
位于美国佐治亚州德卢斯市的Concurrent公司是较早采用Hadoop的公司之一。这个公司对外销售流媒体系统。同时,它还替客户保存和分析 大量的视频数据。为了更好地应对待处理数据量的不断增长,两年前Concurrent采用了Cloudera公司的Hadoop CDH系统。
“Hadoop是我们解决大数据难题必不可少的工具,借助它我们在很短的时间内就能完成海量数据的处理。”Concurrent公司工程总监威廉·拉扎罗(William Lazzaro)说。
拉扎罗介绍,Concurrent有一个部门专门收集和保存客户的视频点播统计数据,Hadoop的部署给这个部门解决了一个很大的难题。“我们有一个客户,现在一个月就可以新生成30亿条记录,我们预计,在未来3个月,它每月的数据量将会达到10亿条。”
很长时间以来,Concurrent公司有两个大的难题:一个是传统的关系型数据库无法处理诸如视频这类非结构化数据,另一个是需要进行处理和存储 的数据量成倍增长。“我们的客户希望要保留4?5年的数据。”拉扎罗解释说,“如果它们每天的数据量达到PB级,对我们而言,将是一个非常的挑战。”
他说,幸运的是,Concurrent的工程师发现,采用Hadoop他们可以应对其客户不断增加的数据量带来的巨大处理和存储压力。“测试过程 中,工程师们曾经完成过每天为客户处理20亿条数据记录。如果数据量再增加,我们只要往节点中加入服务器,就可以马上获得所需要的处理能力。整个系统的可 扩展性非常好。”拉扎罗说。
他说,作为比较,该公司采用传统的数据库来完成同样的工作。他们发现Hadoop的主要好处之一是,在数据量增加时可以很容易和迅速地增加硬件,同时,还不需额外的授权费用,因为它是开源软件。“这是Hadoop与传统的关系数据库系统相比 一个非常大的不同。”拉扎罗说。
位于美国加利福尼亚州圣克拉拉市从事生命科学和基因组研究的NextBio公司也是Hadoop的用户,它们所从事的人类基因测序和相关科研工作涉及的数据量也非常庞大。
“我们有非常多的各种基因组数据,需要与其他数据进行关联和比较,我们采用Hadoop来帮助完成这些工作。”NextBio工程副总裁萨特南·阿拉克 (Satnam Alag)说,“我们通过Hadoop来对大量的公共数据进行各种分析,很多组织需要这些研究结果,如制药公司、学术研究等。”NextBio使用的是 MapR公司的一个Hadoop分发版本。
他说,一个典型的完整的基因组序列可以包含120GB?150GB的压缩数据,要对这些数据处理需要500GB的存储空间。过去,要分析一个基因组 序列就要3天,今天,用30?40台服务器运行Hadoop,NextBio的工作人员在3?4个小时内就可以完成。“对于那些必须要对这些数据进行全面 分析的应用程序,这种效率的提升是非常有用的。”
Hadoop另一大优势是,只要简单地增加更多的节点就可以保证系统的处理能力得到增加。“如果不用Hadoop,系统的扩展将是一件具有挑战性的工作,成本高昂。”他说这种所谓的横向扩展 给由普通服务器组成的Hadoop集群中增加节点是一种性价比非常高的扩展系统方式,“Hadoop框架能自动地管理群集中失效的节点。”
他说,这极大地改变了公司增加计算能力来满足其需求的方式。“我们不希望在硬件资源上就花上数百万美元,我们没有这么多的钱。”
支持新的应用类型
拉扎罗说,Hadoop另一个用处是能够对庞大的数据集进行分析并迅速发现趋势。对一家大型零售商而言,这可能意味着它能对Facebook或Twitter的用户数据进行分析,来了解去年围巾流行什么颜色,并与今天的流行色进行比较,以帮助决定今年如何采购商品。
“它能让你及时地对过去的数据进行分析和整理,从而发现和寻找到新的销售机会。”拉扎罗说。过去Concurrent公司要为汽车经销商进行的商业 活动或广告进行分析,这是一件非常折磨人的事情,会涉及非常多的数据。“我们要对数据进行分析,看看谁在观看广告,借此发现你的销售目标人群,据此引导你 进行有针对性的销售。你并不是总是知道你要找什么。”
传统的数据库可以满足很多分类整理和分析的需要,但对于超大规模的数据集,Hadoop在完成这些工作时效率更高。拉扎罗说:“Hadoop就是专门为大数据分析设计的。”
对此eBay的工程师深有体会。“Hadoop能很快对非结构化数据进行分析,迅速帮助eBay开发出新的应用。”eBay威廉姆斯说。由于 eBay的工程师可以对公司现有的3亿多条商品报价、历史销售记录以及大量的相关信息进行分析,这就使eBay能够很好地了解客户,并为客户提供他们想要 的用户体验。“这不是简单的关于结构化与非结构化的问题,而是它让我们的工程师能够卷起衣袖,以一种前所未有的方式对现有的数据进行分析和处理,从而改进 我们的服务水平和提升销售业绩。”他说。
去年,eBay已经用Hadoop完成了一些非常了不起的事情,包括提高商品广告效果、改善购买者的体验以及让客户更方便地访问网站。
例如,eBay的员工可以看到客户在万圣节和圣诞节提交的每一项查询,从他开始输入时就可以看到。“通过这项功能,我们的员工就知道人们都在寻找什么东西。放到5年前这种使用数据的方式,我们想都不敢想。”
技术贮备必不可少
正如Hadoop有非常突出的优点一样,利用它也有一些特别的注意事项。业内人士提醒,首先不要盲目跟从一个供应商,谨防厂商锁定。因为目前Hadoop市场还刚刚起步。
Forrester的库贝勒斯说,“厂商的技术还在持续快速发展之中,同时,生态系统也有待完善。”
Gartner的分析师马库斯·柯林斯(Marcus Collins)提醒说,要充分发挥Hadoop的价值,企业必须找到拥有Hadoop相关专业知识的人才。“使用Hadoop需要具有一定水平的数据分析能力,而许多企业现在并没有这样的专业人才。”他说, “企业需要对员工进行培养,在数据分析能力方面进行投资,这样才能确保你能用好Hadoop这项技术。”
另一个重要的考虑因素是:多数情况下Hadoop项目需要外聘专家,目前他们供不应求,如果找不到就只能培养内部员工。
“Hadoop对数据的使用方式与以前有很大相同。”eBay的威廉姆斯说,“因此,我们必须先把培训做好,使我们的工程师知道如何使用 Hadoop,知道如何编写代码,这就意味着你将不得不投资在您的开发人员和项目经理上,以使他们成长为熟练的使用者。不要低估这一点。”
对于那些关键的应用还要考虑企业学习和适应开源系统的过程。谨记在一些小项目中进行试验是一回事,而在大规模复杂系统中应用则是另外一回事。因此,最好提前让企业的管理团队在开源软件的使用方面进行学习。
柯林斯的另一个建议是,密切关注和参与项目,以确保它按计划进行。“不要把你的所有问题都交给你的Hadoop供应商,毕竟最终使用这个系统的是你。”
此外,库贝勒斯解释说,Hadoop的最佳实践仍在不断完善,所以最好从一些能立竿见影的项目着手,避免要长时间才能看到效益的项目。随着组织建立 起自己的专业团队以及经验的不断丰富,组织将能利用Hadoop做更多更有价值的事情,在此期间,项目的规模和应用的范围也将不断扩展。
不能代替传统数据库
值得一提的是,大多数客户使用Hadoop是作为辅助,而不是取代其他类型的软件,比如传统数据库。例如,在eBay,该公司仍然在使用关系数据库完成一些基于这些数据库的分析和处理工作。用户有必要保持灵活性,某项技术一统天下的局面现在还不会出现。
威廉姆斯解释说:“在eBay,我们看到了综合使用多种技术处理数据给我们带来的价值。在某些方面,Hadoop是一个非常好的选择,而在另外一些方面,需要与其他技术一起工作,才能更好地发挥作用。”
Concurrent的情况也是如此。Hadoop并没有取代传统的关系型数据库,包括MySQL、PostgreSQL和Oracle。“这是一 个综合的解决方案。”拉扎罗说,“我们用Hadoop来完成繁重的工作,如海量数据的处理,我们还使用Map/Reduce在Hadoop中创建汇总数 据,这些数据可以很容易通过传统的关系数据库系统访问。”
对关系型数据库而言,如果系统过于庞大,比如,每天2.5亿条记录,数据库的响应就会变得很慢。“不过,”他说,“这种数据规模对Hadoop不成问题。因此,可以用Hadoop来存储,比如,每天50亿条记录,然后用Map / Reduce来对数据汇总,最后把结果保存到传统数据库中,以支持传统系统的快速访问。
威廉姆斯说,在一般情况下Hadoop的使用没有太多限制。“我认为Hadoop给我们带来的是机会,几乎关于Hadoop的任何技术问题都可以通 过开源社区找到答案。有些人对Hadoop的确有抱怨,这是正常的,毕竟它是新的东西。这就像1993年或1994年的Linux一样。”
威廉姆斯进一步解释说,“我们也的确看到,Hadoop在应对海量数据时所面临的独特技术挑战,如架构数据中心、重新设计网络、选择合适的硬件来支持Hadoop。但总体而言,Hadoop给eBay带来很多帮助。”
“对于我们来说,Hadoop绝对是一个能改变游戏规则的技术,这也是为什么我们的工程师要使用它的原因,它确实帮助我们成为一个真正的数据驱动型的公司。”他说。
链接
用好Hadoop的两个建议
eBay用户体验、搜索和平台副总裁休·威廉姆斯提供了几条如何利用Hadoop的建议。
1.提高Hadoop的利用效率。“如果组织中有很多人同时在使用某个Hadoop集群,他们很可能会做一些同样的事情。”威廉姆斯说,“这意味着他们很可能会产生相同的中间数据集来进行分析,这是一种浪费。”
他建议,更好的办法是早上执行一些通用的数据查询,并把结果保存在一个地方,任何人需要它们都可以访问,从而节省大量的处理时间及相关资源。“尽量先想想,哪些数据集对使用者是有用的,再为这些用户创建这些数据集。”
2.对Hadoop集群进行清理是日常维护中的一个关键工作。“这非常重要。”威廉姆斯说,“组织中可能会运行很多Hadoop作业,这样会生成大 量的数据。不过,通常情况下,人们做完后,带上文件就一走了之。如果不及时清理,最后在系统中就会留下大量无用的Hadoop文件。”
“所以,你有必要创建一个策略,以保持您的Hadoop集群系统是干净的,不至于无谓地浪费磁盘空间。在大型的Hadoop集群系统中这一点尤为重要。”