2020-12-31 13:56:39 阅读(177)
Facebook大数据技术架构的演进路线 Facebook一直是大数据技术中最活跃的应用程序,因为它拥有巨大的数据量。数据显示,2011年压缩数据为25PB,未压缩数据为150PB,每天产生的未压缩新数据为400TB。大数据技术广泛应用于广告、新闻源、新闻/聊天、搜索、网站安全、具体分析、报告等领域。Facebook也是Apache大数据开源项目的最大贡献者之一。Facebook于2007年左右正式转向Hadoop计算框架,随后向Apache基金会贡献了著名的Hive、ZooKeeper、Scribe、目前,Facebook的开源过程仍在积极推进,如cassandra。Facebook大数据技术架构经历了三个演变阶段。 基于Hadoop的Facebook早期大数据技术架构、HBase、Hive、基于Scribe等开源工具。日志数据流由HTTP服务器生成,通过日志收集系统Scribe传输到共享和存储NFS文件系统,然后通过小时Copier/Loader(即Mapreduce作业)将数据文件上传到Hadop。数据摘要是基于HiveSQL语言的日常流水操作,结果将定期更新到前端Mysql服务器,以便通过OLTP工具生成报告。Hadoop集群节点有3000个,可以很好地解决可扩展性和容错性问题,但早期系统的主要问题是整体处理延迟较大,从日志生成开始~2天后才能得到最终报告。 Facebook目前的大数据技术架构在早期架构的基础上优化了数据传输通道和数据处理系统,如图所示,主要分为分布式日志系统Scribe、HDFS和HBase分布式存储系统、分布式计算和分析系统(MapReduce、Puma和Hive)等。Scribe日志系统用于收集大量HTTP服务器的日志数据。Thrift是Facebook提供的跨语言服务开发的软件框架、Java、PHP、在Python和Ruby之间实现无缝支持。使用ThriftRPC调用Scribe日志收集服务进行日志数据汇总。ScribePolicy是将元数据传输给Scribe客户端和ScribeHDFS的日志流量和模型管理节点,收集的日志数据存储在ScribeHDFS中。Facebook将早期系统优化的数据通道称为DataFreway,可以处理峰值9GB/s的数据,端到端延迟在10s以内,支持2500多种日志类型。DataFreeway主要包括四个组件,Scribe、Calligraphus、ContinuscopierPTail。Scribe用于客户端,负责通过ThriftRPC发送数据;Calligraphus在中间层整理数据并写入HDFS。它提供日志类型的管理,辅助Zookeper;ContinusCopier将文件从一个HDFS复制到另一个HDFS;多个HDFS上的PTail并行tail目录,并将文件数据写入标准输出。在目前的体系结构中,一些数据处理仍然通过MapReduce批量处理,存储在中央的HDFS每天通过Hive进行分析和处理。在目前的架构中,一些数据处理仍然通过Mapreduce进行小时处理,存储在中央HDFS中,每天通过Hive进行分析和处理。另一部分接近实时的数据流通过Puma进行分钟处理。Facebook为特殊分析提供Peregrine(Hipal)分析提供Nocron工具的工具和周期性分析。 Facebook未来大数据技术架构的雏形已经出来。首先开源的是Corona,Corona可以取代Hadoop系统中的Mapreduce,类似于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集群,可以连接全球数据中心,并在数据中心停止时立即重新分布数据,这类似于谷歌的Spanner。 Facebook的大数据技术架构演变路径代表了大数据技术的发展路线。值得称道的是,开源是Facebook的一贯路线,与Yahoo等公司一起为大数据技术的发展做出了巨大贡献。Facebook使用的软件在某些方面仍然是LAMP网站,但Facebook已经做出了必要的改变、扩展和修改,以配合大量其他组件和服务。例如,Facebook仍然使用PHP,但Facebook已经重建了一个新的编译器,以满足在其Web服务器上加载本地代码的需要,从而提高性能;Facebook使用Linux系统,但为了自己的目的,也进行了必要的优化。(尤其是网络吞吐量);Facebook使用MySQL,但也优化了。还有定制的系统,比如,Haystack—存储高度可扩展的对象,用于处理Facebook的巨大图片;Scribe—Facebook日志系统。以下是Facebook在世界上最大的社交网站上使用的软件。MemcachedMemcached是一款相当有名的软件。它是一种分布式内存缓存系统。Facebook作为Web服务器和MySQL服务器之间的缓存层,也有大量的网站。多年来,Facebook在Memcached及其相关软件(如网络栈)上做了大量的优化工作。Facebook运行成千上万的Memcached服务器,借用并及时处理TB级缓存数据。Facebook拥有世界上最大的Memcached设备。与本地服务器上的代码相比,HiphopforPHP的运行速度相对较慢。PHPHop将PHP代码转换为CHP代码 编译时代码,提高性能。由于Facebook非常依赖PHP来处理信息,有了HipHop,Facebook在Web服务器方面更是如虎添翼。HipHop诞生过程:在Facebook中,一组工程师(最初是3位)花了18个月的时间研发而成。HaystackHaystack是Facebook高性能图像存储/检索系统。(严格来说,Haystack是一个对象存储,所以它不需要存储图片。)Haystack的工作量超大。Facebook上有200多亿张图片,每张图片保存在四种不同的分辨率,因此Facebook上有800多亿张图片。Haystack的作用不仅仅是处理大量图片,它的性能也是亮点。正如我们前面提到的,Facebook每秒处理大约120万张图片,不包括其CDN处理的图片数量。这是一个惊人的数据!!!BigPipeBigPipe是Facebook开发的动态网页处理系统。Facebook为了达到最佳,用它来处理每个网页的块(也称为“”Pagelets”)。例如,聊天窗口是独立检索的,新闻源也是独立检索的。这些Pagelets可以并发检索,性能也可以提高。这样,即使网站的某一部分停用或崩溃,用户仍然可以使用。CassandraCassandra是一种无单点故障的分布式存储系统。它是前NoSQL运动的成员之一,现已开源(已加入Apache工程)。Facebook用于邮箱搜索。除Facebook外,Cassandra还适用于许多其他服务,如Digg。ScribeScribe是一个灵活的日志系统,Facebook用于各种内部用途。Scribe用途:处理Facebook级别日志,一旦生成新的日志分类,Scribe将自动处理。(Facebook有上百个日志分类)。HadoopandHiveHadop是一个开源Map/Reduce框架,可以轻松处理大量数据。Facebook用于数据分析。(前面说过,Facebook的数据量是超海量的。)Hive起源于Facebook,Hive可以使用SQL查询,使非程序员更容易使用Hadoop。(注1:Hive是一种基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为Mapreduce任务。)VarnishVarnish是一种负载均衡的HTTP加速器,也用于缓存内容的快速处理。Facebook用Varnish处理图片和用户照片,每天处理10亿级请求。和Facebook的其他应用一样,Varnish也是开源的。Facebook可以顺利运行,这也有利于其他方面。虽然上面提到了一些构成Facebook系统的软件,但处理如此庞大的系统本身就是一项复杂的任务。因此,下面还将列出一些能够使Facebook顺利运行的东西。虽然这里不能深入硬件,但硬件绝对是Facebook达到前所未有规模的重要因素。例如,像其他大型网站一样,Facebook也使用CDN来处理静态内容。Facebook还在美国西部的俄勒冈州建立了一个大型数据中心,可以随时添加服务器。当然,除了前面提到的,还有很多其他的软件没有提到。但是,希望能突出其中非常有特色的。
以上就是关于解析Facebook的大数据处理架构及应用的软件的相关介绍,更多解析Facebook的大数据处理架构及应用的软件相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对解析Facebook的大数据处理架构及应用的软件有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一