`

[Binospace] HBase在Facebook Message存储的使用经验总结

阅读更多

HBase数据存储状况

1、2PB+ of online data in HBase (6PB+ with replication; excludes backups),存储了message data, metadata, search index 等信息。

2、每天大概有8B+Messages,增长到每月大概产生250TB的数据。

3、Traffic to HBase ▪ 75+ Billion R+W ops/day  ▪ At peak: 1.5M ops/sec   ▪ ~ 55% Read vs. 45% Write ops 。

Facebook选择HBase的原因

▪ High write throughput

▪ Good random read performance

▪ Horizontal scalability

▪ Automatic Failover

▪ Strong consistency

▪ Benefits of HDFS

Fault tolerant, scalable, checksums, MapReduce

internal dev & ops expertise

Facebook的HBase架构

Multiple clusters/cells for messaging

▪ 20 servers/rack; 5 or more racks per cluster Controllers (master/Zookeeper) spread across racks

 

Facebook将消息的存储分成多个HBase集群,每个HBase集群由多个Rack上的节点组成,这样可以减小故障对服务影响的范围。

Facebook消息的schema

1、RowKey:md5sum(userid)+userid。结合preSplit,可以避免HotSpot。

2、借助HBase单行操作的原子性。一个用户的所有信息存储成一行,这包括消息本身、Message Index、Search Index、以及相关Meta Data(Actions:addMessage、markAsRead,etc)。

Example:Facebook如何存储Message Index的结构。

 

HBase Enhancement

1、HFile V2的架构

 

  • Open HFile操作
    1) 提供对于V1、V2两种格式的HFile的兼容。这分别对应于org.apache.hadoop.hbase.io.hfile.HFileReaderV1和org.apache.hadoop.hbase.io.hfile.HFileReaderV2
    2) 加载Opening-time Data Section区域的数据。这些操作位于HFileReaderV2或者HFileReaderV1的构造函数中。
  • Write操作
    1)写数据到Data Block。 HFileBlock //本操作暂时忽略MemStore的过程,只是对于HFile文件的操作。
    2)写bloom block和Leaf index block
  • Read操作
    1) 从Root Data Index和Bloom Index检索。
    2)进入Leaf level index ,然后查找Block Cache,如果dismiss,就从hfile把对应DataBlock加载到Cache中。

2、Compaction 优化

  • Major Compaction与Minor Compaction采用不同的队列。
  • 在off-peak负载下预先进行Compactions
  • Compaction多线程执行
  • 算法优化,如下图。

    ps(将满足要求的小文件合并,过去was,修改之后的算法,现在Now)

3、监控与Metrics

  • Metrics收集HBase状态信息。▪ block cache usage & hit ratio
    ▪ memstore usage
    ▪ on-disk file sizes
    ▪ file counts
    ▪ bytes returned, bytes flushed, compaction statistics
    ▪ stats by block type (data block vs. index blocks vs. bloom blocks, etc.)
    ▪ bloom filter stats
  • 增加了对于Region、CF statistics的收集和应用。
  • 所有收集的stats数据会单独存储在Data Store中。
 

文章的脚注信息由WordPress的wp-posturl插件自动生成

 

分享到:
评论

相关推荐

    大数据开发之Hbase基本使用及存储设计实战教程(视频+笔记+代码)

    │ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 │ Day1503_Hbase与MYSQL的存储比较.mp4 │ Day1504_Hbase部署环境准备.mp4 │ Day...

    大数据与云计算培训学习资料 HBase在Facebook的解决方案 共48页.pptx

    大数据与云计算培训学习资料 HBase在Facebook的解决方案 共48页.pptx

    Facebook Message

    根据给定的文件信息,我们可以了解到这篇文章主要探讨的是在...通过这些知识点,我们可以了解到Facebook Messages系统内部对于HDFS存储的使用情况,以及在进行大规模分布式存储系统设计时可能遇到的挑战和解决方案。

    HbaseTemplate 操作hbase

    在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...

    【HBase企业应用开发】工作中自己总结的Hbase文档,非常全面!

    HBase是一种分布式的、面向列的数据库管理系统,它利用Hadoop HDFS作为其文件存储系统,使用Hadoop MapReduce来处理HBase中的海量数据,并且使用Zookeeper作为其协同服务。HBase以表的形式存储数据,表由行和列组成...

    facebook讲解hbase的应用(hadoop大会)

    在Facebook的Hadoop大会上,Guoqiang Jerry Chen与Liyin Tang分享了Facebook如何构建其关键任务消息系统,该系统基于HBase运行。这一演讲深入解析了Facebook Messages的架构、设计选择以及面临的挑战,为业界提供了...

    \"HBase_介绍和HBase云存储\"分享总结

    在本分享总结中,我们将深入探讨“HBase_介绍”和“HBase云存储”的相关主题,这将涵盖HBase的基础知识、其架构原理、在云计算环境中的应用以及相关的源码解析。首先,我们从HBase的基本概念和功能入手。 HBase是一...

    Hbase个人总结

    HBase基于Google Bigtable论文实现,利用HDFS作为底层存储,使用Zookeeper进行集群管理和协调,通过MapReduce来处理其中的海量数据。 #### 三、HBase的关键特性 - **高可靠性**:HBase通过数据副本和自动故障恢复...

    大数据技术基础实验报告-HBase安装配置和应用实践.doc

    - 配置`/usr/local/hbase/conf/hbase-site.xml`,尤其是`hbase.rootdir`属性,指定HBase数据的存储位置,避免因系统重启导致数据丢失。通常设置为HBase安装目录下的一个临时文件夹。 3. **应用实践** - 完成上述...

    Facebook开发HDFS和HBase的新进展

    因此,Facebook投入大量资源开发和优化Hadoop分布式文件系统(HDFS)和基于此的列式存储数据库HBase,以提升数据存储与处理效率,确保平台的高效运行。 #### HDFS的新特性与优化策略 HDFS是Hadoop的核心组件之一,...

    基于Hbase的海量视频存储简单模拟

    Hbase则是建立在Hadoop之上的非关系型数据库,它提供了对大规模数据的实时随机读写能力,特别适合于大规模的列式存储。 在这个项目中,我们首先会利用HDFS作为视频文件的存储层。HDFS的分布式特性使得视频文件可以...

    支撑Facebook消息处理的HBase存储系统

    ▪ Small/medium sized data HBase ▪ Message metadata & indices ▪ Search index ▪ Small message bodies ▪ Attachments and large messages Haystack ▪ Used for our existing photo/video store

    hbase安装与使用

    在此模式下,HBase 使用本地文件系统存储数据,不依赖于 Hadoop 和 HDFS。 2. **启动 HBase**:在根用户下启动 HBase 服务。 ```bash bin/start-hbase.sh ``` 3. **进入 HBase Shell**:启动完成后,可以通过...

    藏经阁-HBase 在中国电信的实战.pdf

    本资源摘要信息主要介绍了中国电信使用 HBase 技术的实战经验,包括 HBase 的架构设计、数据收集、存储和处理、监控和优化等方面的内容。 HBase 架构设计 HBase 是一个基于 Hadoop 的分布式数据库,中国电信使用 ...

    Hbase 安装与基本使用

    5. **修改配置文件**:编辑`hbase-site.xml`,配置HBase的主要参数,如`hbase.rootdir`(HBase的默认数据存储位置,通常在HDFS上)和`hbase.zookeeper.quorum`(ZooKeeper的服务器列表)。 **三、启动与停止HBase**...

    HBase数据库设计.doc

    总的来说,HBase是一种面向大数据的列式存储系统,适用于需要实时查询和大规模扩展的场景,但其设计和使用需要对分布式存储有深入理解。在设计HBase数据库时,应充分考虑数据模型、行键策略以及集群的扩展性需求。

    Hadoop+Hbase搭建云存储总结

    - **日志处理:** 大量的日志数据可以通过Hadoop进行初步清洗和聚合,然后再存储到Hbase中供后续分析使用。 通过以上对Hadoop+Hbase搭建云存储的关键知识点的梳理,我们可以清晰地了解到这套技术组合在实际应用中...

    大数据实验Hbase安装部署和使用javaapi调用.pdf

    在这个实验中,我们将深入理解HBase在Hadoop生态系统中的角色,并掌握如何在Ubuntu 19.04操作系统上安装、配置和使用HBase,同时利用Java API进行编程。实验中使用的Hadoop版本为3.2.0,HBase版本为2.2.1,JDK版本为...

    HBase入门与使用

    5. **版本化**:HBase存储的数据具有时间戳,可以查询历史版本的数据。 #### HBase性能 HBase的性能优势在于其对大数据的高效处理能力。通过RegionServer的负载均衡机制,HBase能够在大量节点上分布存储和处理数据...

Global site tag (gtag.js) - Google Analytics