我正在研究hbase。我有一些问题:
HBase在哪里存储行密钥?它是在每个区域服务器的内存中吗?还是在磁盘上?
如果我的行键非常大,会发生什么?
谢谢!
答案 0 :(得分:2)
完整的行键存储在每个单元格中,允许稀疏存储。
这意味着将为每一行写入完整行:family:column key。列名也存储。
这显然意味着大的行/列名称将占用大量磁盘空间。
使用lzo存储可以减轻很多这种情况: http://wiki.apache.org/hadoop/UsingLzoCompression
Lars George有一篇关于hbase中数据基本布局的非常好的文章(它现在有点陈旧,但基本布局仍然是相同的): http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html