阅读更多

20顶
2踩

数据库

转载新闻 Facebook:HBase每月存储1350亿条信息

2010-11-22 09:36 by 见习记者 iammonster 评论(9) 有20585人浏览

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

  为什么这一选择令人惊奇?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 的眷顾和青睐。

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


HBase架构图


  • 大小: 55.6 KB
20
2
评论 共 9 条 请登录后发表评论
9 楼 Angel_Night 2011-11-24 11:07
soaFocus 写道
不知道hbase的单点fb是怎么解决的?
NameNode挂掉,集群可以完蛋了

fb可是对外宣称一次都不会挂的!


namenode 本身会备份 文件系统元数据持久文件 而且是原子操作。
还可以设置辅助namenode。

难道其他的数据存储集群能比这高明多少吗?
8 楼 soaFocus 2011-01-24 17:52
不知道hbase的单点fb是怎么解决的?
NameNode挂掉,集群可以完蛋了

fb可是对外宣称一次都不会挂的!
7 楼 cwalet 2010-11-25 11:56
我看了新浪微波构架介绍,需求越高,系统一代比一代复杂
6 楼 cysg 2010-11-25 00:56

    [*]
5 楼 kongzhizhen 2010-11-24 22:15
悲剧的是,在天朝,这只是一堵强。
4 楼 yuyue618 2010-11-24 20:17
真够复杂的
3 楼 diggywang 2010-11-22 11:12
2年前还是叱咤风云的BigTable,已经被各种各样的衍生品给淹没了
2 楼 lmxbitihero 2010-11-22 10:36
科技创新无止境
1 楼 srdrm 2010-11-22 10:28
真够复杂的。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Facebook每月1350亿条海量信息的存储方案

    最重要的是,他们需要每个月存储 1350 亿条信息。他们在哪里存储这些信息?Facebook的Kannan Muthukkaruppan 在《信息背后的技术》一文中给出一个令人惊奇的答案:HBase。HBase 击败了MySQL、Cassandra和其他一些...

  • Facebook的新实时消息系统:HBase

    FB每个月需要存储1350亿条信息。Kannan Muthukkaruppa给出了一篇文章,介绍了背后使用的存储技术 -- HBase。 Hbase的性能优于MySQL,Cassandra及类似系统。 <br /> Cassandra是Facebook专为inbox类型...

  • 新年新纠结:选择MongoDB还是HBase?

    以前一直有用MongoDB,但是听说facebook近日放弃了Cassandra改用HBase,实在是有些震惊。 下面的一个新闻更让人心动,这时真不知该用哪个好了。。。。。 这几天发现“我记录”网站有些问题,时常打不开。。。。...

  • IT前沿技术之node.js篇<七>:Node.js与HBase

    这时,陆地上升起了山一般的云,海岸成了一长条绿色的线,背后映衬着几座灰蓝色的小山。此时,海水已经变成了深蓝色,深得几乎发紫。...文中提供的每一个例程都希望你能亲手实现,每一个例程的设计都是为了

  • HBase学习系列

    转自:http://www.aboutyun.com/thread-8391-1-1.html ...1.hbase是什么?...2.hbase原理是什么?...3.hbase使用中会遇到什么问题? 4.如何通过eclipse,操作hbase? 5.h...

  • 《HBase企业应用开发实战》—— 1.5 HBase的使用场景和经典案例

    本节书摘来自华章出版社《HBase企业应用开发实战》一 书中的第1章,第1.5节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.5 HBase的使用场景和经典案例 了解软件产品...

  • 零基础学习hadoop生态系统到上手工作线路指导初级篇(HBASE篇)

    1.hbase是什么? 2.hbase原理是什么? 3.hbase使用中会遇到什么问题? 4.如何通过eclipse,操作hbase? 5.hbase经常和哪些软件一起使用? 。。。。。。。。。。 ...

  • HBase与MongDB等NoSQL数据库对比

    淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储。 MySQL由于开源,并且生态系统良好,本身拥有分库分表等多种解决方案,因此很长一段时间内都满足淘宝大量业务的需求。但是由于业务的多样...

  • HBase概念学习(十)HBase与MongDB等NoSQL数据库对比

    淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储。 MySQL由于开源,并且生态系统良好,本身拥有分库分表等多种解决方案,因此很长一段时间内都满足淘宝大量业务的需求。但是由于业务的多样化...

  • HBase概念学习(十)HBase与MongDB等NoSQL数据库对照

    淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储。 MySQL因为开源,而且生态系统良好,本身拥有分库分表等多种解决方式,因此非常长一段时间内都满足淘宝大量业务的需求。可是因为业务的多样...

  • HBase与MongDB等NoSQL数据库对照

    HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一、开篇 淘宝之前使用的存储层架构一直是MySQL数据库,配合以MongDB,Tair等存储。 MySQL因为开源,...

  • quartus ii安装教程.docx

    quartus ii安装教程

  • tensorflow_probability-0.3.0-py2.py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • tensorflow_privacy-0.5.1-py3-none-any.whl

    算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • tensorflow_recommenders-0.7.3-py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • asp代码ASP基于WEB实验室设备管理系统设计(源代码+论文)

    asp代码ASP基于WEB实验室设备管理系统设计(源代码+论文)本资源系百度网盘分享地址

  • JAVA毕业设计之springboot057洗衣店订单管理系统(springboot+mysql)完整源码.zip

    这个资源是一个基于Spring Boot和MySQL的洗衣店订单管理系统的完整源码。它包括了所有的源代码文件,以及一个详细的文档,可以帮助你理解和运行这个系统。这个系统的主要功能包括:用户注册和登录,下单,查看订单,修改订单,删除订单等。用户可以在系统中选择洗衣服务,然后提交订单。系统会自动计算订单的总价,并将其显示在用户的订单列表中。用户还可以查看自己的历史订单,以及每个订单的详细信息。此外,系统还包括了一个管理员模块。管理员可以查看所有的订单,以及对订单进行管理。他们可以修改订单的状态,例如将订单标记为已完成,或者取消订单。这个系统使用了Spring Boot框架,这是一个非常流行的Java开发框架,它可以帮助你快速地开发和部署应用程序。同时,系统也使用了MySQL数据库,这是一个广泛使用的关系型数据库,它可以存储大量的数据,并提供高效的查询功能。总的来说,这个资源是一个非常完整的洗衣店订单管理系统的源码,它可以帮助你理解如何使用Spring Boot和MySQL来开发一个实际的应用程序。无论你是正在学习Java编程,还是已经有一定的开发经验,都可以从这个资源中学到很多有用的知识和技能。

  • 网络药理学、代谢组学的应用

    网络药理学、代谢组学的应用和课题设计方案”基于PI3K-AKT-mTOR通路研究 淫羊藿苷影响成骨细胞糖酵解促进骨形成的机制“

  • 毕业论文知识图谱构建平台的python后端。模型相关在这个模块完成,深度学习基于pytorch.zip

    人工智能毕业设计&课程设计

Global site tag (gtag.js) - Google Analytics