leon
leon

Reputation: 10395

Where does HBase store all the row keys?

I am working on hbase. I have some questions:

  1. Where does HBase store the row key? Is it in the memory of each region server? Or on the disk?

  2. If my row keys are extremely very large, what will happen?

Thanks!

Upvotes: 2

Views: 1374

Answers (1)

juhanic
juhanic

Reputation: 835

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

Upvotes: 2

Related Questions