InfoQ在2010年的时候曾经发布过一篇新闻《Facebook谈 Hadoop、Hive、HBase和 A/B测试》,时任Facebook的工程副总Mike Schroepfer曾谈到当时Facebook的数据量产生情况:
- Facebook有4亿用户,超过一半的用户每天登录
- 用户花在Facebook上的时间,比接近它的6个站点所花的时间的总和还多
- Facebook用户每个月分享250亿的内容信息
- 5000亿单月页面浏览量
要处理这样的数据,Facebook使用了大型的Hadoop集群:
- 存储36PB未压缩的数据
- 有超过2250台机器和23000个核心
- 每个机器32GB内存
- 每天处理80-90TB数据
- 该集群每个月有300-400的用户,他们每天提交 25000个任务
在不久前InfoQ主办的全球架构师峰会ArchSummit上,前Facebook数据基础设施团队主管Ashish Thusoo做了题为“Facebook的海量数据架构演变过程”的演讲,深受大家关注。那么现在Facebook的数据量有多大呢?Gigaom的一篇文章回答了这个问题。
文章开头指出:Facebook现在的用户数达到9.5亿,这些用户的每个动作,包括点击一个通知、访问一个页面、查看一个朋友的链接等等,都会为 Facebook产生要跟踪的数据。而这9.5亿用户平均每个月在Facebook上用去的时间超过6.5个小时,整个的数据量就可以想见了。
在周三,Facebook提供了一些他们现在的统计数据:
- 人们每天分享25亿个内容条目,包括状态更新、墙上的帖子、图片、视频和评论
- 每天有27亿个“Like”操作
- 人们每天上传3亿张照片
- Facebook最大的Hadoop(HDFS)集群中,硬盘空间超过100PB
- Facebook使用Hadoop查询语言Hive,每30分钟扫描105TB数据
- 数据库中的数据每天增加超过500TB
Facebook的基础设施副总Jay Parkish指出:
如果你没有利用大数据带来的好处,那么你就没有大数据,你只是有一堆数据而已。我们对一切数据都感兴趣。
Pariksh还提到:Facebook一直努力寻找分析和利用数据的更好方法,包括做大量的A/B测试,找出网站所有可能的功能变化,并确保网站实时响应用户的输入。
在前面提到的那篇InfoQ的新闻中,对Facebook的A/B测试方法也有所提及:
当Facebook计划推出他们的“Like”按钮时,他们担心会不会发生“自相蚕食”的结果——会不会因此反而减少了文字评论,而不是提升了参与 度?为了验证这一点,他们运行了A/B测试来比较用户行为:给一组用户使用新功能(Like按钮),而另一个对照组则没有。他们使用了两组南美国家来进行 比较:[哥伦比亚、委内瑞拉] vs [阿根廷、智利]。测试的结果是:使用Like按钮的时候评论增加了4.46%,而对照组的数据则是0.63%。这一类测试所产生的巨大的数据集正是 Facebook使用Hadoop来处理数据的例子。
Schroepfer接着给出了另一个例子来说明为什么数据驱动的A/B测试这么重要:Facebook还用同样的方法测试过电子邮件提醒的两种不 同的设计。 尽管大多数的人都期望更为图形化更丰富的电子邮件会产出更好的响应率,但与简单的基于文本的电子邮件对比测试时,后者却有着三倍于前者的响应率——这表明 了使用数据测试观点而不是依赖直觉所带来的巨大威力。