北京时间8月31日消息,据国外媒体报道,当你必须扩大服务规模以应对日益增加的数据需求时,最好的参考对象可能就是Facebook了。这家社交网站最初只是为哈佛学生提供服务,现在它已经扩张到为约5亿用户服务。 用“5亿用户”这个数字来描述Facebook面临的扩展和存储需求可能并不充分。因此你可以看看下面这几个统计数字:用户每天在网站上花费的时间总计为80亿分钟,每周有35亿个内容被共享,每月上传的相片数量达25亿张,每秒有120万张相片被观看。而且,由于70%的Facebook用户在美国以外的地区,用户和数据中心所在的位置令处理和存储的数据量变得更加复杂。 因此毫不奇怪,某些传统的规模扩张方式对Facebook不起作用。如果用户互连的方式既是无法预测的,也是全球性的,你就不能简单地基于用户的位置,或基于用户将要使用的信息来共享数据库。 在Facebook发展的过程中,无论是在存储还是在交付内容方面,它都已经在开发了大量工具来处理数据,而且它还把其中很多工具开源了。根据Facebook的开源代码项目经理大卫·勒科尔(David Recordon)所述,Facebook一开始就是建立在开源代码技术的基础上的。但Facebook对开源代码的使用远远超出了LAMP堆栈(或甚至超出了LAMP堆栈加Memcached)的范围。Facebook曾开发并发布了几个开源项目,而且也深入参与了另一些项目的开发,其中最出名的也许就是Hadoop了。 下面就是Facebook的几个开源工具,它们大大提高了Facebook处理海量数据的能力: Cassandra Cassandra现在已经是Apache 软件基金会(Apache Software Foundation)的一个顶级项目。Cassandra是由很多数据库节点共同构成的分布式存储系统,可以支持比较丰富的数据结构, 是一种非关系型(NoSQL)数据库解决方案。设计Cassandra的最初目的是解决Facebook收件箱搜索的存储需要。 Hive Hive是基于Hadoop的数据仓库平台,它的查询语言Hive QL类似于SQL,因此熟悉 SQL的人可以使用较丰富的查询方式来分析存储在Hadoop中的数据。Hive也是Apache 软件基金会的项目。 HipHop 为了节省服务器资源,Facebook开发了HipHop,它可以把PHP源代码转变成高度优化的C + +。HipHop在今年早些时候开源。 Scribe Facebook的日志数据每天约为25万亿比特,其他工具难以处理如此大量的数据,所以Facebook开发了Scribe,以便从大量服务器上实时收集日志数据。 Thrift Thrift是一个可伸缩的跨语言的服务开发框架,它目前是Apache的一个孵化器项目, 勒科尔表示,Facebook不仅努力开发内部新工具,也鼓励这些工具的外部发展和使用。不过可能很少有公司需要应对像Facebook那样巨大的数据存储和扩张需求,因此Facebook开源努力的意义在于建立一个“协作的可持续的发展模式”。 |