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中。
From Binospace, post HBase在Facebook Message存储的使用经验总结
文章的脚注信息由WordPress的wp-posturl插件自动生成
相关推荐
│ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 │ Day1503_Hbase与MYSQL的存储比较.mp4 │ Day1504_Hbase部署环境准备.mp4 │ Day...
大数据与云计算培训学习资料 HBase在Facebook的解决方案 共48页.pptx
Analysis of HDFS Under HBase: A Facebook Messages Case Study
▪ 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
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
简单的介绍了habse存储数据的样子和简单的hbase shell 使用
Hadoop+Hbase搭建云存储总结
HBase企业应用开发】工作中自己总结的Hbase文档,非常全面!
大数据 Hbase的学习个人总结文档,主要讲述了,Hbase的基础知识
资源回答:Rowkey设计时需要遵循三大原则?你们在使用hbase在使用遇到的问题?Hbase优化,你们是怎么做的?Hbase热点(数据倾斜)问题你们是怎么处理的?属于高频面试题
从HBase的集群搭建、HBaseshell操作、java编程、架构、原理、涉及的数据结构,并且结合陌陌海量消息存储案例来讲解实战HBase 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为...
这是本人使用hbase shell的部分经验总结,一般的shell使用全部包括了。 版本,压缩,region等需求,以及使用普通shell使用hbase shell
此论文是facebook在2014年顶级存储会议FAST发布的,讲述了HBase在facebook作为在线存储的改进和完善。 主要涉及Bucket cache的应用,即二级缓存方案,和HBase的架构改造
HBase 在小米的实战
本资源为hbase的安装和使用,内含hbase安装工具包,hbase的安装说明,hbase的使用说明 。
HBase基本操作 增删改查 java代码 要使用须导入对应的jar包
HBase作为Google发表BigTable论文的开源实现版本,是一种分布式列式存储的数据库,构建在HDFS之上的NoSQL数据库,非常适合大规模实时查询,因此HBase在实时计算领域使用非常广泛。可以实时写HBase,也可以利用...
使用spark读取hbase中的数据,并插入到mysql中
HBASE在tb的使用
就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非...