Hadoop应用案例分析:在Facebook的应用

  Facebook作为全球知名的社交网站,拥有超过3亿的活跃用户,其中约有3千万用户至少每天更新一次自己的状态;用户每月总共上传10亿余张照片、1千万个视频;以及每周共享10亿条内容,包括日志、链接、新闻、微博等。因此Facebook需要存储和处理的数据量是非常巨大的,每天新增加4TB压缩后的数据,扫描135TB大小的数据,在集群上执行Hive任务超过7500次,每小时需要进行8万次计算,所以高性能的云平台对Facebook来说是非常重要的,而Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等方面。

  Facebook将数据存储在利用Hadoop/Hive搭建的数据仓库上,这个数据仓库拥有4800个内核,具有5.5PB的存储量,每个节点可存储12TB大小的数据,同时,它还具有两层网络拓扑,如下图所示。Facebook中的MapReduce集群是动态变化的,它基于负载情况和集群节点之间的配置信息可动态移动。

  ▲集群的网络拓扑

  下图为Facebook的数据仓库架构,在这个架构中,网络服务器和内部服务生成日志数据,这里Facebook使用开源日志收集系统,它可以将数以百计的日志数据集存储在NFS服务器上,但大部分日志数据会复制到同一个中心的HDFS实例中,而HDFS存储的数据都会放到利用Hive构建的数据仓库中。Hive提供了类SQL的语言来与MapReduce结合,创建并发布多种摘要和报告,以及在它们的基础上进行历史分析。Hive上基于浏览器的接口允许用户执行Hive查询。Oracle和MySQL数据库用来发布这些摘要,这些数据容量相对较小,但查询频率较高并需要实时响应。

  ▲Facebook数据仓库架构

  一些旧的数据需要及时归档,并存储在较便宜的存储器上,如下图所示。下面介绍Facebook在AvatarNode和调度策略方面所做的一些工作。AvatarNode主要用于HDFS的恢复和启动,若HDFS崩溃,原有技术恢复首先需要花10~15分钟来读取12GB的文件镜像并写回,还要用20~30分钟处理来自2000个DataNode的数据块报告,最后用40~60分钟来恢复崩溃的NameNode和部署软件。表3-1说明了BackupNode和AvatarNode的区别,AvatarNode作为普通的NameNode启动,处理所有来自DataNode的消息。AvatarDataNode与DataNode相似,支持多线程和针对多个主节点的多队列,但无法区分原始和备份。人工恢复使用AvatarShell命令行工具,AvatarShell执行恢复操作并更新ZooKeeper的zNode,恢复过程对用户来说是透明的。分布式Avatar文件系统实现在现有文件系统的上层。

  ▲数据归档

  表:BackupNode和AvatarNode的区别

  基于位置的调度策略在实际应用中存在着一些问题:如需要高内存的任务可能会被分配给拥有低内存的TaskTracker;CPU资源有时未被充分利用;为不同硬件的TaskTracker进行配置也比较困难等。Facebook采用基于资源的调度策略,即公平享有调度方法,实时监测系统并收集CPU和内存的使用情况,调度器会分析实时的内存消耗情况,然后在任务之间公平分配任务的内存使用量。它通过读取/proc/目录解析进程树,并收集进程树上所有的CPU和内存的使用信息,然后通过TaskCounters在心跳(heartbeat)时发送信息。

  Facebook的数据仓库使用Hive,其构架如下图所示,有关Hive查询语言的相关知识可查阅第11章的内容。这里HDFS支持三种文件格式:文本文件(TextFile),方便其他应用程序读写;顺序文件(SequenceFile),只有Hadoop能够读取并支持分块压缩;RCFile,使用顺序文件基于块的存储方式,每个块按列存储,这样有较好的压缩率和查询性能。Facebook未来会在Hive上进行改进,以支持索引、视图、子查询等新功能。

  ▲Hive的体系结构

  现在Facebook使用Hadoop遇到的挑战有:

  ·服务质量和隔离性方面,较大的任务会影响集群性能;

  ·安全性方面,如果软件漏洞导致NameNode事务日志崩溃该如何处理;

  ·数据归档方面,如何选择归档数据,以及数据如何归档;

  ·性能提升方面,如何有效地解决瓶颈等。

  作者简介:陆嘉恒,《Hadoop实战》作者,中国人民大学副教授,新加坡国立大学博士,美国加利福尼亚大学尔湾分校(University of California, Irvine) 博士后。

时间: 2024-09-07 23:13:38

Hadoop应用案例分析:在Facebook的应用的相关文章

Hadoop应用案例分析:在Yahoo的应用

文章讲的是Hadoop应用案例分析:在Yahoo的应用,关于Hadoop技术的研究和应用,Yahoo!始终处于领先地位,它将Hadoop应用于自己的各种产品中,包括数据分析.内容优化.反垃圾邮件系统.广告的优化选择.大数据处理和ETL等;同样,在用户兴趣预测.搜索排名.广告定位等方面得到了充分的应用. 在Yahoo!主页个性化方面,实时服务系统通过Apache从数据库中读取user到interest的映射,并且每隔5分钟生产环境中的Hadoop集群就会基于最新数据重新排列内容,每隔7分钟则在页面

一个HBase优化案例分析:Facebook Messages系统问题与解决方案

HDFS设计的初衷是为了存储大文件(例如日志文件),面向批处理.顺序I/O的.然而架设在HDFS之上的HBase设计的初衷却是为了解决海量数据的随机读写的请求.把这两种设计初衷截然相反的组件怎么揉在一起的呢?这种分层的结构设计主要是为了使架构更清晰,HBase层和HDFS层各司其职:但是却带来了潜在的性能下降.在很多业务场景中大家使用HBase抱怨最多的两个问题就是:Java GC相关的问题和随机读写性能的问题.Facebook Messages(以下简称FM系统)系统可以说是HBase在onl

营销案例分析:Facebook虚拟人物页面

凯西-贝丝-特里(http://www.aliyun.com/zixun/aggregation/16708.html">Kathy Beth Terry)绝不是一个书呆子,因为她周五刚刚度过了一个疯狂的晚上,而且还有五十多万Facebook朋友可以证明这一点. 也许你会问了,这个凯西-贝丝是何许人也?如果你错过了凯西-贝丝几个月前的首次登台演出,那么以下就是对她的简单介绍:她是流行歌手凯蒂-佩里(Katy Perry)在歌曲 "Last Friday Night(TGIF)&q

必读!大数据:Hadoop,业务分析及更多(1)

翻译:Cady Wang(王楠楠) 你想了解大数据,却对生涩的术语毫不知情?你想了解大数据的市场和应用,却又没有好的案例和解说?别担心,这本来自Wikibon社区的小书想要帮你. 是的,这是一本小书而不是一篇文章,因为它详实细致的让你从一个完全不了解大数据技术及相关应用的门外汉,变成一个熟知其概念和意义的"内行人",所以它很棒! 译者Cady王楠楠花费了很多心血翻译这本小书,不足之处也请朋友们多指正.我们分成数篇连载. --世界大数据观察,宋星 主要内容 · 1来自Wikibon社区的

六个超大规模Hadoop部署案例

据估计,到2015年,全世界一半以上的数据将涉及Hadoop--围绕这个开源平台的生态系统日益庞大,这有力地印证了这个惊人的数字. 然而,有些人表示,虽然Hadoop是眼下热闹非凡的大数据领域最热话题,但它肯定不是可以解决数据中心和数据管理方面所有难题的灵丹妙药.考虑到这一点,我们暂且不想猜测这个平台未来会如何,也不想猜测彻底改变各种数据密集型解决方案的开源技术未来会如何,而是关注让Hadoop越来越火的实际应用案例. 毫无疑问,现在有几个出众的例子,表明Hadoop及相关开源技术(Hive和H

不看不知道:六个超大规模Hadoop部署案例

虽然Hadoop是眼下热闹非凡的大数据领域最热话题,但它肯定不是可以解决数据中心和数据管理方面所有难题的灵丹妙药.考虑到这一点,我们暂且不想猜测这个平台未来会如何,也不想猜测各种数据密集型解决方案的开源技术未来会如何,而是关注让Hadoop越来越火的实际应用案例. 案例之一:eBay的Hadoop环境 eBay分析平台开发小组的Anil Madan讨论了这家拍卖行业的巨擘在如何充分发挥Hadoop平台的强大功能,充分利用每天潮水般涌入的8TB至10TB数据. 虽然eBay只是几年前才开始向生产型

案例分析:基于消息的分布式架构

原文:案例分析:基于消息的分布式架构 美国计算机科学家,LaTex的作者Leslie Lamport说:"分布式系统就是这样一个系统,系统中一个你甚至都不知道的计算机出了故障,却可能导致你自己的计算机不可用."一语道破了开发分布式系统的玄机,那就是它的复杂与不可控.所以Martin Fowler强调:分布式调用的第一原则就是不要分布式.这句话看似颇具哲理,然而就企业应用系统而言,只要整个系统在不停地演化,并有多个子系统共同存在时,这条原则就会被迫打破.盖因为在当今的企业应用系统中,很难

网站日志统计案例分析与实现

1.概要     到这一步,若是按照前面到文章一步走来,不出意外,我想hadoop平台环境应该搭建OK了.下面我以自己工作中实际的案例来梳理一下整个流程.同时参考一些其他的文章来分析,由于很多网站的日志KPI都大同小异,故有些指标直接在文中赘述了. 2.流程 背景 前言 目录 日志分析概述 需求分析 源码 2.1 背景 从2011年开始,中国进入大数据时代如火如荼,以Hadoop为代表的套件,占据了大数据处理的广阔地盘.开源界及厂商,所有数据软件,纷纷 向Hadoop靠拢.Hadoop也从小规模

什么是HADOOP、产生背景、在大数据、云计算中的位置和关系、国内外HADOOP应用案例介绍、就业方向、生态圈以及各组成部分的简介(学习资料中的文档材料)

1. HADOOP背景介绍 1. 1.1什么是HADOOP 1.        HADOOP是apache旗下的一套开源软件平台 2.        HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.        HADOOP的核心组件有 A.       HDFS(分布式文件系统) B.       YARN(运算资源调度系统) C.       MAPREDUCE(分布式运算编程框架) 4.        广义上来说,HADOOP通常是指一个更