写点什么

Facebook 谈 Hadoop,Hive,HBase 和 A/B 测试

  • 2010-07-15
  • 本文字数:2052 字

    阅读完需:约 7 分钟

Hadoop 峰会 2010 上,一系列 Hadoop 及其相关技术的大规模用户带来了演讲报告。值得注意的是,Facebook 的主题演讲展示了他们使用 Hive 来作分析的详细信息。Mike Schroepfer,Facebook 的工程副总裁,作了描述使用 Hadoop 所处理的 Facebook 的数据规模的报告。

Schroepfer 给出了 Facebook 如何使用 Hadoop 来计算大规模分析例子。当 Facebook 计划推出他们的“Like”按钮时,他们担心会不会发生“自相蚕食”的结果——会不会因此反而减少了文字评论,而不是提升了参与度?为了验证这一点,他们运行了 A/B 测试来比较用户行为,给一组用户使用新功能 (Like 按钮),而另一个对照组则没有。这需要在一个互接连的社区内进行测试,“内生的组织”——在组织之外的连接很少。他们使用了两组南美国家来进行比较,哥伦比业,委内瑞拉 vs 阿根廷,智利。测试的结果是使用 Like 按钮的时候评论增加了 4.46%,而对照组的数据则是 0.63%。这一类测试所产生的巨大的数据集正是 Facebook 使用 Hadoop 来处理数据的例子。Schroepfer 接着给出了另一个例子来说明为什么数据驱动的 A/B 测试这么重要:Facebook 还用同样的方法测试过电子邮件提醒的两种不同的设计。 尽管大多数的人都期望更为图形化更丰富的电子邮件会产出更好的响应率,但与简单的基于文本的电子邮件对比测试时,后者却有着三倍于前者的响应率——这表明了使用数据测试观点而不是依赖直觉所带来的巨大威力。

Schroepfer 指出,Facebook 有 4 亿用户,超过一半的用户每天登录,而 Neilsen 调查指出花在 Facebook 上的时间,比接近它的 6 个站点所花的时间的总和还多。Facebook 用户每个月分享 250 亿的内容信息,以及 5000 亿的单月页面浏览量。要处理这样的数据卷,Facebook 使用了大型的 Hadoop 集群,存储 36PB 未压缩的数据,有超过 2250 台机器和 23000 个核心,每个机器 32GB 内存,每天处理 80-90TB 数据 (推测是新数据)。该集群每个月有 300-400 的用户,他们每天提交 25000 个任务。

Facebook 从两个主要的数据源输入数据到 Hadoop 集群。他们使用开源的 Scribe 上传工具从 Web 集群载入数据,每 10 到 15 分钟就从成千上万的机器传输数据。他们每天还从系统记录载入数据,一个超过 2000 节点的 MySQL 联合集群。这些数据包括概要文件,好友信息,以及广告和广告推广信息。他们将数据载入一个生产环境白金集群,只运行仔细监控的关键性任务,并且这些任务在集群里运行前都是受控管理的。Facebook 同时还运行 Hive 副本将数据推送到金牌和银牌集群,运行关键级别低一些的任务。他们还将数据从白金集群推送到一个 Oracle RAC 实例。他们的集群是由一系列节点和一个单一核心的交换机组成的。将数据分割到不同的集群保证了关键性任务的高可靠性,同时还支持将 Hadoop 用于更为探索性和分析性的用途。这与 Yahoo 所描述的他们如何将 Hadoop 同时用于生产集群和科研集群非常的相似 (请查看雅虎!来自Hadoop 峰会的最新更新获取更多内容)。

为了支持向Hadoop 集群载入日志的高可靠性,他们使用Scribe 与一个中间聚合器,以及基于树型的分布将数据导出到本地托管的HDFS 和Hadoop 集群里。在这个层次,运行第二个HDFS 实例(使用单独的名字节点),作为热备份——如果主HDFS 宕机,系统将向备份的HDFS 写入。当拉出数据载入到生产环境中时,只需要从这两个文件系统拉出数据,压缩,然后传送到生产集群中。

Schroepfer 指出,95% 的 Facebook 任务由 Hive 写成,他们可以快速的写就,通常十分钟就可以。实际上 Facebook 创建了一个基于 Web 的工具,HiPal,来让业务分析师使用 Hive,只需要简单的撰写查询语句,支持查询载入仓库的近 20000 个表 (HiPal 并未公开)。他们一步一步从每天的批处理过渡到实时的查询——他预见将会出现最快查询在一分钟内就可以返回的系统,这必将为一系列新兴的应用开启大门。

接下来,来自 Facebook 的 John Sichi 及何永强展示了 Hive 与 HBase 和 RCFile 的集成。HBase 是类似 BigTable 的键值存储模型,将数据存储于 Hadoop 的 DFS 文件系统。Facebook 正在尝试将 HBase 用于数据仓库里的持续更新的维数据。Facebook 测试了将 Hive 集成到 20 个节点的 HBase 集群——从 Hive 向 HBase 载入 6TB gzip 压缩的数据块用了 30 个小时,在这种配置下可以达到 30GB/ 每小时的增加载入速率。在 HBase 运行表扫描比执行原生的 Hive 查询要慢五倍以上。他们尝试对这一集成进行优化,以利用最新的 HBase 性能优化所带来的好处。RCFile 是 Hive 中一种新的存储格式,将数据按列式 (columnar) 存储。他们采用这种格式,平均减少了 20% 的存储需求,同时可以达到更好的性能 (按需延迟对列数据的解压)。

Facebook 对 Hadoop 技术将持续投入,并对他们所使用开源项目作出了贡献,比如 Hive(由他们所发起的) 以及 HBase。他们的计算集群正在处理超大规模的数据并有着支持高可用性的架构,低延迟的应用,和与 Hadoop 相集成的数据库。更多来自 Facebook 的案例请查阅 infoq.com/facebook

查看英文原文: Facebook on Hadoop, Hive, HBase, and A/B Testing

2010-07-15 07:5218524
用户头像

发布了 133 篇内容, 共 37.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

集成学习案例二 (蒸汽量预测)

容光

架构实战营 模块四课后作业

iProcess

架构实战营

懂得取舍才是缓存设计的真谛

万俊峰Kevin

缓存 cache 分布式缓存 Go 语言

网络攻防学习笔记 Day24

穿过生命散发芬芳

5月日更 网络攻防

新思科技为中兴通讯提供BSIMM软件安全评估

InfoQ_434670063458

5G 新思科技 中兴 软件安全 BSIMM

这么狠,私塾在线架构师系列课程全都免费发放

InfoQ_d2212957090d

Java

腾讯云CLS日志服务初体验

三掌柜

5月日更

技术干货 | 基于MindSpore更好的理解Focal Loss

华为云开发者联盟

函数 mindspore Focal Loss 样本

M1 Dock智能硬件环境搭建(MaixPy安装及使用)

不脱发的程序猿

人工智能 开发板 智能硬件 AIOT M1 Dock

「技术人生」第2篇:学会分析事物的本质

阿里巴巴中间件

技术 工具 技术人 技术人生 一号位

「DataPipeline」完成数千万B轮融资,加速构建中国的世界级数据中间件产品

DataPipeline数见科技

融资

设计千万级学生管理系统的考试试卷存储方案

thewangzl

GitHub开源的AI下五子棋

不脱发的程序猿

人工智能 GitHub 开源 AI 五子棋

2021年中国信创生态报告发布 指引未来信创产业发展

融云 RongCloud

python 高级函数补充

若尘

Python编程 高级函数 5月日更

探索GaussDB(DWS)的过程化SQL语言能力

华为云开发者联盟

数据库 GaussDB(DWS) SQL语言 PLSQL语言 索引表达式

云计算下半场:打法已变,谁主沉浮

ToB行业头条

云计算

【Flutter 专题】122 图解自定义半遮挡头像 SeriesCircleProfile & CircleAvatar

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

LRU 和 LFU

且听且吟

“三次握手,四次挥手”这么讲,保证你忘不了

三分恶

计算机网络

《Spring 手撸专栏》第 3 章:初显身手,运用设计模式,实现 Bean 的定义、注册、获取

小傅哥

Java spring 设计模式 小傅哥 抽象类

聊聊dubbo协议2

捉虫大师

dubbo 协议

WizTree——一个扫描快似Everything的硬盘空间分析工具

吴脑的键客

DevOps windows

云小课|聊一聊DRS的数据过滤特性

华为云开发者联盟

数据库 DRS 数据复制服务 数据过滤 数据库引擎

极光开发者周刊【No.0521】

极光JIGUANG

Rust从0到1-错误处理-panic!还是Result

rust 错误处理 result panic!

Spring cloud 之熔断机制

Damon

5月日更 熔灾

NumPy之:ndarray中的函数

程序那些事

Python Numpy

重命名表,应该怎么做?

Simon

MySQL

☕【JVM技术之旅】你真正掌握了Java对象创建的流程吗?

洛神灬殇

JVM java对象分析 java对象 对象创建 5月日更

BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点

不脱发的程序猿

图像格式

Facebook谈 Hadoop,Hive,HBase和 A/B测试_软件工程_Ron Bodkin_InfoQ精选文章