Facebook实时信息系统:HBase每月存储1350亿条信息

原创
数据库 新闻
Facebook上的信息是海量的,这么大量的信息究竟有多少?具体的数字是每月1350亿条。那么Facebook是如何存储这些信息的呢?答案是HBase。

【51CTO经典译文】也许你已经在一些地方看到这个消息,Facebook 已经开发一款新的社会化收件箱,集成了电子邮件、即时通讯、短信、文本信息、Facebook站内信息。最重要的是,他们需要每个月存储 1350 亿条信息。他们在哪里存储这些信息?Facebook的Kannan Muthukkaruppan 在《信息背后的技术》一文中给出一个令人惊奇的答案:HBase。HBase 击败了MySQLCassandra和其他一些选项,成为了Facebook的选择。

51CTO向您推荐《Facebook数据库工具Flashcache初探

为什么这一选择令人惊奇?Facebook 创建了Cassandra,其目的就是为了建造一个收件箱类型的应用程序,但是最终他们发现,Cassandra的一致性模型并不能很好地适用于Facebook 新的实时信息系统。另外,Facebook 还有一个扩展的MySQL 架构,不过他们发现,当数据集和索引变大时,性能会变得让人无法忍受。另外,他们原本可以自己开发一套系统,但他们最终还是选择了 HBase。

HBase是一个可以横向扩张的表存储系统,能够为大规模数据提供速度极快的低等级更新。这正是信息系统所需要的功能。另外,HBase是一个基于列的键值存储系统,并且是构建于 BigTabe 模型之上。HBase善于根据键访问行,以及对于一系列的行进行扫描和过滤。同样,这也是信息系统所需要的功能。不过,它并不支持复杂查询。查询通常交给分析工具处理,比如Hive,Facebook创建了Hive,目的是处理他们容量高达多个拍字节(petabyte)的数据仓库。同时,Hive 是基于Hadoop的文件系统HDFS,而HBase使用的也是这一文件系统。

Facebook 选择了HBase,因为他们对他们的应用进行了监视,并明白他们到底需要什么。他们所需要的是一个可以处理以下两种类型的数据模式:

1. 一小组经常变化的临时数据;

2. 一组不断增加但很少访问的数据。

这很有道理。当前收件箱里的邮件你只会看一次,之后你很少会再去翻看这些电子邮件。这两种类似的数据是如此不同,所以有人也许在想应该使用两种不同的系统。不过,很明显,HBase 能够很好地处理这两种类型的数据。他们如何处理常规的搜索功能,尚不清楚,因为这并非 HBase 的优势所在,不过,HBase 可以集成多个搜索系统。

Facebook 系统的一些关键点:

● HBase:

○ 具有比Cassandra更简洁的一致性模型。

○ 对于他们的数据模式具有很好的扩展能力和处理能力。

○ 大多数功能能够满足他们的需求:自动加载平衡和故障转移、压缩支持功能、单个服务器的多碎片功能等。

○ HBase 所使用的文件系统HDFS,支持复制、端对端校验和,以及自动再次平衡。

○ Facebook 的运营团队具有丰富的HDFS使用经验,因为Facebook是Hadoop的大用户,而Hadoop使用 HDFS 作为它的分布式文件系统。

● Haystack 用于存储附件。

● 从无到有,编写可自定义的应用程序服务器,其目的是为了满足多个不同来源流入的大量信息。

● 用户发现服务(user discovery service)构建于 Zookeeper 之上。

● 对于以下功能可访问架构服务:电子邮件账号验证、好友关系、隐私决策以及发送决策(通过聊天工具或短信发送一条消息?)

● 保持小团队做大事情的一贯作风,15 位工程师在一年内发布了 20 项新的架构服务。

● Facebook将不会对单个数据库平台进行标准化,对于不同的任务他们将使用不同的平台。

Facebook 通过选择HBase将极大地推动该系统的采用,同时Facebook具有丰富的 HDFS/Hadoop/Hive 使用经验。想到这些,就让人兴奋的无法入睡。这是任何一款产品的梦想:成为另一个非常流行的产品的搭档,并期待成为其生态系统的一部分。这正是 HBase 所取得的成功。HBase 已经在许多方面去多了不错的成绩:实时、分布、线性扩展、健壮、BigData、开源、键值、面对列,我们将会看到 HBase 变得更加流行,尤其是它已经获得了 Facebook 的眷顾和青睐。

原文标题:Facebook's New Real-Time Messaging System: HBase To Store 135+ Billion Messages A Month

相关阅读

HBase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式。HBase使用和Bigtable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列。HBase主要用于需要随机访问,实时读写你的大数据(Big Data)。

 

 

HBase架构图

 

 

【编辑推荐】

  1. 开源数据库Hibari发布 针对大数据量处理
  2. SQL Server数据库对大数据量表数据进行DELETE
  3. MongoDB CEO谈NoSQL的大数据量处理能力
  4. 详解NoSQL数据库使用实例
  5. 云计算时代NoSQL当道 关系数据库日薄西山

 

责任编辑:彭凡 来源: 51CTO
相关推荐

2009-06-17 09:41:33

Facebook即时通FbChat

2020-09-22 07:00:00

事件驱动信息系统架构

2021-09-29 15:32:32

数据泄露漏洞信息安全

2020-04-21 11:56:42

Facebook数据泄露暗网

2021-01-25 12:25:49

物联网智能冰箱IoT

2021-11-18 11:45:54

Stripchat漏洞信息泄露

2021-04-06 09:34:31

Facebook隐私黑客

2013-01-10 12:54:29

大数据探讨Twitter

2020-04-22 15:10:45

信息泄露暗网网络攻击

2011-01-25 10:42:16

信息系统项目管理师

2014-12-04 10:08:22

华为大数据存储

2014-12-09 13:09:02

华为存储

2017-01-12 16:54:04

信息泄露网络安全房产商

2015-04-20 10:12:30

谷歌搜索

2021-11-05 07:00:51

Facebook元宇宙人脸信息

2011-02-25 10:41:33

2010-11-25 15:19:22

2012-10-10 22:02:35

2011-07-18 11:13:30

2009-06-24 09:42:27

点赞
收藏

51CTO技术栈公众号