Hbase逻辑视图 Hbase基本概念
每个column family存储在HDFS上的一个单独文件中,空值不会被保存。
Key 和 Version number在每个 column family中均有一份;
HBase 为每个值维护了多级索引,即:<key, column family, column name, timestamp>
物理存储:
Hbase基本组件说明:
该机制用于数据的容错和恢复:
每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中(HLog文件格式见后续),HLog文件定期会滚动出新的,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知到,HMaster首先会处理遗留的 HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应region的目录下,然后再将失效的region重新分配,领取 到这些region的HRegionServer在Load Region的过程中,会发现有历史HLog需要处理,因此会Replay HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复
storing large amounts of data(100s of TBs) need high write throughput need efficient random access(key lookups) within large data sets need to scale gracefully with data for structured and semi-structured data don't need fullRDMS capabilities(cross row/cross table transaction, joins,etc.) 大数据量存储,大数据量高并发操作 需要对数据随机读写操作 读写访问均是非常简单的操作
两者都具有良好的容错性和扩展性,都可以扩展到成百上千个节点; HDFS适合批处理场景 不支持数据随机查找 不适合增量数据处理 不支持数据更新
1、http://www.alidata.org/archives/1509(存储模型比较详细)
2、http://www.searchtb.com/2011/01/understanding-hbase.html(技术框架以及存储模型)
3、http://wenku.baidu.com/view/b46eadd228ea81c758f578f4.html(读和写的流程比较详细)
上一篇
已是最后文章
下一篇