访问接口
•HBase Shell
•Java clietn API
•
HBase non-java access
•
•
languages talking to the JVM
•
•Jython interface to HBase
•Groovy DSL for HBase
•Scala interface to HBase
•
languages with a custom protocol
•
•REST gateway specification for HBase
•充分利用HTTP协议:GET POST PUT DELET
•text/plain
•text/xml
•application/json
•application/x-protobuf
Bigtable: A Distributed Storage System for Structured Data
HFile: A Block-Indexed File Format to Store Sorted Key-Value Pairs for a thorough introduction Hbase Architecture 101
Hbase source code 作者: 那个谁 时间: 2012-1-8 13:33:06
第四张图引用自HBase Architecture 101 – Write-ahead-Log
根据habse0.90代码,HLog是每个region server一个,不是每个region一个,因此这张图是错的,文中没有写错。
这样做是为了提高hbase的写性能,在Google Big Table论文中有详细描述:
Commit-log implementation
If we kept the commit log for each tablet in a separate
log le, a very large number of les would be written
concurrently in GFS. Depending on the underlying le
system implementation on each GFS server, these writes
could cause a large number of disk seeks to write to the
different physical log les. In addition, having separate
log les per tablet also reduces the effectiveness of the
group commit optimization, since groups would tend to
be smaller. To x these issues, we append mutations
to a single commit log per tablet server, co-mingling
mutations for different tablets in the same physical log
le [18, 20].
如果一个region server意外失效,在恢复其上的数据时,会先将Hlog按照region进行切分,在分发到未这些region提供服务的机器上去。 作者: 那个谁 时间: 2012-1-8 13:34:12