写点什么

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:5218971
用户头像

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

关注

评论

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

元宇宙(Metaverse)对普通人意味着什么?

涛哥 数字产品和业务架构

元宇宙

元宇宙或许翻译错了

涛哥 数字产品和业务架构

元宇宙

业务架构师的思维转变

涛哥 数字产品和业务架构

Go 语言入门很简单:正则表达式

宇宙之一粟

正则表达式 Go 语言 4月月更

别再用老版云效Projex项目协作了,该升级了

阿里云云效

阿里云 项目管理 研发团队 项目协作 项目协作工具

时序数据库 vs OLAP

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

微信小程序开发系列 (三) :微信小程序如何响应用户点击事件和微信平台 API 的使用方法介绍

汪子熙

微信小程序 微信公众平台 前端开发 4月月更 微信平台

自己动手写 Docker 系列 -- 6.5 启动时给容器配置网络

Go Docker 4月月更

ThinkPHP6+swoole+easywechat使用教程

CRMEB

云原生训练营 -Week10

jjn0703

云原生训练营

Docker下,极速体验pinpoint1.6.3

程序员欣宸

Java 分布式 4月月更

Mysql应用开发规范

阿丞

MySQL

架构实战营 - 第 6 期 模块四课后作业

乐邦

「架构实战营」

Dio 封装之金屋藏娇

岛上码农

flutter ios开发 安卓开发 4月月更 跨平台开发

我们需要一个元宇宙吗?

涛哥 数字产品和业务架构

元宇宙

redis优化系列(四)哨兵机制

乌龟哥哥

4月月更

云原生训练营学习总结

arctec

微服务与领域驱动设计,架构实践总结

架构 微服务 领域驱动设计 软件架构

C语言总结_数组全方位练习

DS小龙哥

4月月更

企业架构的7个关键趋势

涛哥 数字产品和业务架构

企业架构

提前起跑的OPPO,靠闪充完成一次“三级跳”

脑极体

元宇宙是人类的终极未来吗?

涛哥 数字产品和业务架构

元宇宙

[Day24]-[二叉树] 相同树

方勇(gopher)

LeetCode 二叉树 DFS BFS 数据结构算法

华为云大咖带你玩转云原生基础设施之K8s

坚果

4月月更

想学习算法交易的工程师们,机会来啦~

非凸科技

rust 招聘 基金 量化交易 算法交易

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