Facebook大数据技术架构的演进路线

Facebook一直是大数据技术最积极的应用者,因为它拥有的数据量极其巨大,一份资料显示2011年它拥有的压缩数据已经有25PB,未压缩数据150PB,每天产生的未压缩的新数据有400TB。

Facebook一直是大数据技术最积极的应用者,因为它拥有的数据量极其巨大,一份资料显示2011年它拥有的压缩数据已经有25PB,未压缩数据150PB,每天产生的未压缩的新数据有400TB。

在Facebook,大数据技术被广泛应用在广告、新闻源、消息/聊天、搜索、站点安全、特定分析、报告等各个领域。Facebook也是Apache大数据开源项目的最大贡献者之一。Facebook是2007年前后正式转向Hadoop计算框架,随之它向Apache基金会贡献了大名鼎鼎的Hive、ZooKeeper、Scribe、Cassandra等开源工具,当前Facebook的开源进程仍在积极推进着。Facebook大数据技术架构经历了三个演变阶段。

Facebook早期的大数据技术架构是建立在Hadoop、HBase、Hive、Scribe等开源工具基础上的。日志数据流从HTTP服务器产生,通过日志收集系统Scribe耗费秒级时间传送到共享存储NFS文件系统,然后通过小时级的Copier/Loader(即MapReduce作业)将数据文件上传到Hadoop。数据摘要通过每天例行的流水作业产生,它是基于Hive的类SQL语言开发,结果会定期会更新到前端的Mysql服务器,以便通过OLTP工具产生报表。Hadoop集群节点有3000个,扩展性和容错性方面的问题能够很好地解决,但是早期系统的主要问题是整体的处理延迟较大,从日志产生起1~2天后才能得到最终的报表。

Facebook当前的大数据技术架构是在早期架构基础上对数据传输通道和数据处理系统进行了优化,如图所示,主要分为分布式日志系统Scribe、分布式存储系统HDFS和HBase、分布式计算和分析系统(MapReduce、Puma和Hive)等。Facebook大数据技术架构的演进路线。

Facebook大数据

其中,Scribe日志系统用于聚合来自大量HTTP服务器的日志数据。Thrift是Facebook提供的软件框架,用于跨语言的服务开发,能够在C 、Java、PHP 、Python和Ruby等语言之间实现无缝的支持。采用Thrift RPC来调用Scribe日志收集服务进行日志数据汇总。Scribe Policy是日志流量和模型管理节点,将元数据传送给Scribe客户端和Scribe HDFS,采集的日志数据存储在Scribe HDFS。Facebook对早期系统优化后的数据通道称为Data Freeway,能够处理峰值9GB/s的数据并且端到端的延迟在10s以内,支持超过2500种的日志种类。

Data Freeway主要包括4个组件,Scribe、Calligraphus、Continuous Copier和PTail。Scribe用于客户端,负责通过Thrift RPC发送数据;Calligraphus在中间层梳理数据并写到HDFS,它提供了日志种类的管理,利用Zookeeper进行辅助;Continuous Copier将文件从一个HDFS拷贝到另一个HDFS;PTail并行地tail多个HDFS上的目录,并写文件数据到标准输出。在当前架构中,一部分数据处理仍然以批处理的方式通过MapReduce进行小时级的处理,存储在中央的HDFS,每天通过Hive进行分析处理。另一部分接近实时的数据流则通过Puma来进行分钟级的处理。Facebook对专门分析提供Peregrine(Hipal)工具、对周期性分析提供Nocron工具进行分析。

Facebook未来的大数据技术架构的雏形已经出来。首先开源的是可能替代Hadoop系统中MapReduce的Corona,类似于Yahoo提出的YARN。Corona最大的一个进步是其集群管理器做到了基于CPU、内存和其他作业处理的需求资源的管理,这可以使得Corona既可以处理MapReduce 作业,也可以处理非MapReduce 作业,使Hadoop集群的应用领域更加广泛。二是Facebook最新的交互式大数据查询系统Presto,类似于Cloudera的Impala和Hortonworks的Stinger,解决了Facebook迅速膨胀的海量数据仓库快速查询需求。据Facebook称,使用Presto进行简单的查询只需要几百毫秒,即使是非常复杂的查询,也只需数分钟便可完成,它在内存中运行,并且不会向磁盘写入。第三是Wormhole流计算系统,类似于Twiitter的Storm和Yahoo的Storm-YARN。第四个重要项目是Prism,它能够运行一个超大的、能够将全球数据中心都连起来的Hadoop集群,可能在一个数据中心宕掉的时候即时的将数据重新分布,这是一个与Google的Spanner类似的项目。

Facebook的大数据技术架构演进路径代表了大数据技术的发展路线,难能可贵的是,开源是Facebook一贯的路线,它和Yahoo等公司一起为大数据技术的发展作出了巨大贡献。

作者:赵刚

本文节选自北京赛智时代信息技术咨询有限公司(CIOManage咨询)的《2013-2014年中国互联网行业大数据应用年度研究报告》

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
大数据精选的头像大数据精选编辑
上一篇 2013-11-02 22:06
下一篇 2014-02-28 13:03

相关文章

关注我们
关注我们
分享本页
返回顶部