不能代替传统数据库
值得一提的是,大多数客户使用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集群系统中这一点尤为重要。”