Hadoop 是当今在分布式/并行计算中最流行的开源工具,他不仅仅可以用于存储的分布式文件系统,可以用来构建大量集群计算机用来大规模的数据集分布式存储和存档处理。目前Yahoo在Hadoop上的贡献占了很大的一部分,关键是Yahoo贡献给Hadoop社区的是Yahoo全部的

Hadoop 是当今在分布式/并行计算中最流行的开源工具,他不仅仅可以用于存储的分布式文件系统,可以用来构建大量集群计算机用来大规模的数据集分布式存储和存档处理。目前Yahoo在Hadoop上的贡献占了很大的一部分,关键是Yahoo贡献给Hadoop社区的是Yahoo全部的研究成果。

口水:
Hive数据仓库工具是Hadoop中的一个子项目,Hadoop中的子项目还包括Zookeeper分布式锁,提供类似Google Chubby的功能,我在前面几篇文章中也有提到过关于Zookeeper的应用 ,在Hadoop大型计算中Zookeeper与他们密不可分。

Facebook是Hadoop的忠实用户和贡献源码的参与者,并且Facebook还贡献了Hive和Thrift两个重要Hadoop组件,目前已经收入在Apache的Hadoop的子项目中,Hive是基于 Hadoop DFS的 adhoc query system,定义了HQL语言,基于MapReduce实施查询但是别指望性能有多么的高,Thrift是Hadoop的跨语言接口,可以支持多种语言,例如php和ruby。

除了Yahoo!和FaceBook两大站点在大量使用超过10,000个微处理器核心的Linux计算机集群运行Hadoop,还有A9.com、 IBM 、 ImageShack、 Last.fm、Powerset、 纽约时报 等 也在使用 Hadoop系统。

在国内百度也是一个Hadoop的忠实用户,传说中百度的Hadoop的运行节点达到了2000个左右,并且采用SSD硬盘对Hadoop的数据进行存储。还有淘宝,在淘宝的数据库团队的博客上我看见过几篇介绍使用 Hive和Hadoop的经验分享,但是不知道他们的具体使用情况(或者我没有注意到)。

Facebook目前全球用户数量有5亿,每天有超过一半以上的用户进行登录,每月处理超过250亿的信息内容其中包括用户状态更新,评论等,替代以前Oracle的RAC,Facebook从两个主要的数据源输入数据到Hadoop集群。他们使用开源的Scribe上传工具从Web集群载入数据,每10到15分钟就从成千上万的机器传输数据。他们每天还从系统记录载入数据,一个超过2000节点的MySQL联合集群。这些数据包括概要文件,好友信息,以及广告和广告推广信息。

将来 FaceBook 会把数据库直接写到 Hive上,Hadoop和Hive 最基本的设计思想和传统数据库存储最大的不同是基于列的存储模式,这样可以让更多的开发人员去使用Hive系统。已知Facebook在DFS中存储的数据达到22T,目前肯定更大了。

上面这张图告诉我们采用哪些组件是用来处理数据 ,显示了FaceBook对于Hadoop架构的基本组成部分和数据流。

Facebook的工程师邵铮(2008年3月加入facebook,现居加州) 介绍在2009年一次技术会议上说到,Facebook是采用 自主研发的 Hive 把用户每一个用户操作的行为习惯记录下来,便于Facebook内部分析师更好的从用户使用的行为习惯去分析用户需求,对于Hive/Hadoop的使用并不是意味着将会完全放弃原来传统的数据库(Oracle/MySQL),而且把Hadoop/Hive看做是数据库仓库的和应用操作层的交集。据说现在在开发支持JDBC和ODBC的接口,我记得他当时说到:“Facebook计算节点上Hadoop节点有600个集群的节点,每个机器的2个CPU,将来会达到1000台节点”,这里有一个相关的视频介绍.

今年五月份(2010/5),一位Facebook工程师 Dhruba Borthakur 说到,“Facebook是当今使用Hadoop最大的用户了,这已经不是什么秘密”,并且公布了在Facebook使用Hadoop/HDFS 集群的一些详细信息:
* 21 PB of storage in a single HDFS cluster
* 12 TB per machine (a few machines have 24 TB each)
* 1200 machines with 8 cores each + 800 machines with 16 cores each
* 32 GB of RAM per machine
* 15 map-reduce tasks per machine
* 12 TB of compressed data added per day
* 800 TB of compressed data scanned per day
* 25,000 map-reduce jobs per day
* 65 millions files in HDFS
* 30,000 simultaneous clients to the HDFS NameNode

这位老兄的言词不能排除有点自大和水分,但是我们至少能看出Facebook是怎么对Hadoop进行使用和部署的状态。

FaceBook的数据和日志是海量的,需要FaceBook有一套出色的系统来支撑他们每日已TB级别为单位的增长的数据,据说,现在Facebook每天的新数据量最高可以达到20TB。对于这样环境的数据处理平台的关键要求是能够能够迅速做出响应,系统在整个运营和构建的过程中不得不需要考虑到投入的成本,同时还需要考虑系统非常高可靠的性、易于使用和维护,这不是一件容易的事情。

–end–

原文地址:Hadoop与Facebook, 感谢原作者分享。

09-13 22:48