Where does HBase store all the row keys?
I am working on hbase. I have some questions:
Where does HBase store the row key? Is it in the memory of each region server? O开发者_Python百科r on the disk?
If my row keys are extremely very large, what will happen?
Thanks!
The full row key is stored in every cell, allowing the sparse storage.
That means that the full row will be written for every single row:family:column key. The column names are also stored.
This obviously means that large row/column names will consume a lot of disk space.
A lot of this can be mitigated by using lzo storage: http://wiki.apache.org/hadoop/UsingLzoCompression
Lars George has a very good article about the basic layout of data in hbase(it is a bit old now, but the basic layout is still the same afaik): http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html
精彩评论