HDFS设计的初衷是为了存储大文件(例如日志文件),面向批处理、顺序I/O的。然而架设在HDFS之上的HBase设计的初衷却是为了解决海量数据的随机读写的请求。把这两种设计初衷截然相反的组件怎么揉在一起的呢?这种分层的结构设计主要是为了使架构更清晰,HBase
hdfs设计的初衷是为了存储大文件(例如日志文件),面向批处理、顺序i/o的。然而架设在hdfs之上的hbase设计的初衷却是为了解决海量数据的随机读写的请求。把这两种设计初衷截然相反的组件怎么揉在一起的呢?这种分层的结构设计主要是为了使架构更清晰,hbase层和hdfs层各司其职;但是却带来了潜在的性能下降。在很多业务场景中大家使用hbase抱怨最多的两个问题就是:java gc相关的问题和随机读写性能的问题。facebook messages(以下简称fm系统)系统可以说是hbase在online storage场景下的第一个案例(《apache hadoop goes realtime at facebook》, sigmod 2011),最近他们在存储领域顶级会议fast2014上发表了一篇论文《analysis of hdfs under hbase: a facebook messages case study》分析了他们在使用hbase中遇到的一些问题和解决方案,使用hbase做online storage的同学们可以参考下。
该论文首先讲了Facebook的分析方法包括tracing/analysis/simulation,FM系统的架构和文件与数据构成等,接下来开始分析FM系统在性能方面的一些问题,并提出了解决方案。
http://www.infoq.com/cn/articles/hbase-casestudy-facebook-messages
原文地址:HBase优化案例分析:Facebook Messages系统问题与解决方案, 感谢原作者分享。










