近些年,hadoop和“走向大数据分析引擎”一样,受到颇多赞誉。对很多人来说,Hadoop就意味着大数据技术。但其实开源的分布式处理框架未必能解决所有的大数据问题。这就要求想要部署Hadoop的公司慎重考虑——什么时候应用Hadoop,什么时候应用其他产品。
举例来讲,用Hadoop处理大规模无结构数据或半结构数据可以说绰绰有余。但它处理小数据集的速度却鲜为人知。而这一点就限制了Hadoop在Metamarkets集团的应用。Metamarkets集团位于旧金山,为在线广告提供实时市场营销分析。
Metamarkets CEO Michael Driscoll透露,在时间不紧的情况下,公司使用Hadoop处理庞大的分布式数据,包括运行日终报表以回顾一天的交易额,或浏览几个月前的历史数据。
但在其提供给客户的核心业务——运行实时分析过程中,Metamarkets并没有用到Hadoop。Driscoll认为最佳的方法是在一个数据库中运行批处理作业查看每一个文件。归根结底,这是一种取舍:为了在数据点之间建立深度关联,Hadoop牺牲了速度。Driscoll表示:“使用Hadoop就像交了个笔友,你写封信给他,寄过去,过几天才得到回复。这和(短信)或邮件的体验相去甚远。”
10gen公司的产品营销部经理、同时也是MongoDB NoSQL 数据库开发者Kelly Stirman表示,在线上,快速的反应是至关重要的,而Hadoop则受到时间的掣肘。例如,像产品推荐引擎这样的在线分析应用,依赖的是对少量信息的快速处理,但Hadoop却不能有效的做到这一点。
不考虑置换数据库
因为开源技术大大降低了技术成本,所以或许有些企业考虑报废传统数据仓库,去选择Hadoop集群。但IDC公司的市场研究分析师Carl Olofson则认为,这两者根本没有可比性。
Olofson表示,关系数据库为大多数数据仓库提供动力,它用于容纳一段时间内以固定频率汇入的数据流,比如日常业务流程中的交易记录。另一方面,Hadoop擅长的是处理大量累积数据。
因为Hadoop主要用于大规模项目中,而这些项目本身需要大量服务器和掌握专门项目和数据管理技术的员工,所以虽然每个数据单元的花费比关系数据库要低,但对Hadoop的补充却是昂贵的。Olofson说:“把这些需要的费用加一加就会发现,它只是‘貌似’便宜。”
软件供应商Informatica公司的企业数据集成副总裁Todd Goldman表示,因为Hadoop使用鲜为开发者所知的MapReduce软件程序框架,所以公司需要专门的开发技能。这使得公司难以在Hadoop中从SQL数据库获取数据。
很多供应商开发了关联软件,帮助实现Hadoop系统和关系数据库之间的数据移动。但是Goldman认为,对很多组织来说,为开源技术做的调节实在太多了。他说:“没必要为了Hadoop把公司所有的数据结构改造一遍。”
有帮助,不是过度宣传
Goldman举了一个用于运行提取、转换和加载(ETL)功能的临时空间和数据集成平台的例子来阐述什么时候应用Hadoop。这个应用或许不像Hadoop那些信誓旦旦的宣传一样令人兴奋,但它尤其能说明什么时候IT部门需要合并大文件。这时,Hadoop的处理能力就派上用场了。
Driscoll表示因为Hadoop能够在一个集群中的众多服务器中分离出集成任务,所以它善于提取、转换和加载(ETL)操作。通过使用Hadoop集成、组织数据,从而加载到数据仓库或其他数据库中,公司能够知道对需要更好地利用Hadoop伸缩性的大项目的技术投资是否合理。
当然,诸如Google、Yahoo、Facebook 和Amazon.com等业内先驱多年前就是Hadoop用户了。弥补Hadoop缺陷的新技术也已成型。例如,一些供应商已经发布了能够实时分析Hadoop数据的工具,Hadoop 2.0也将允许在Hadoop上运行MapReduce之外的其他应用。
Stirman认为,最终,对IT和业务决策者来说,重要的是能够清醒地考虑Hadoop如何能和他们的工作结合起来。Hadoop能支持很多有用的数据分析功能,无疑是一个强大的工具,但它仍然要以技术的形式呈现出来。
Stirman表示:“对Hadoop的宣传声势可谓甚嚣尘上,以至于人们觉得它几乎什么都能做。而现实的情况是,它是一项很复杂的技术,仍不成熟。组织需要关注、把控它,才能使它发挥出价值。”