HBase(HadoopDatabase)是一种开源的分布式非关系型数据库,它是构建在Hadoop生态系统之上的。HBase被设计用于处理海量数据,具有高可扩展性、高性能和高可靠性的特点。HBase的
HBase适合处理非常大的数据集,支持实时读写,可以在数千台服务器之间分布数据,提供可靠的数据存储和高效的数据检索功能。HBase常用于处理大数据、实时数据、实时数据分析和搜索等应用场景。
HBase是一个分布式、面向列的NoSQL数据库,是基于Google的Bigtable设计而来的,它运行在Hadoop分布式文件系统(HDFS)之上。
1. 协处理器coprocessor方案。 原理就是自定义协处理器,实现`双写`,就是写主表的时候,同时写索引表[这里这个索引表是根据业务对查询的需求建立的]。 比如我们要查询的主表是A, 里面有RowKey,还有一列ColumnA. 如果想对ColumnA这一列建立索引,就自定义一个协处理器(观察者模式),当我们写入A表中一条数据,比如 行键rowkey(123),cloumnA列值:abc,这时协处理在索引表(自己建立,比如A_INDEX)中插入一条记录 行键为刚才列A的值abc,列值为主表的rowk
1.HBase如何保证读的高效?缓存:* HBase 有两块主要的内存缓存,MemStore 和 BlockCache。 * 一个查询过来 RegionServer 后,首先用 MemStoreScanner 搜索 MemStore 里是否有所查的 rowKey ,这一步在内存中,所以是很快的。 * 如果不在 memstore 中,会经过一系列的索引寻址定位到 Block 的位置。如果 Block 在 BlockCache 缓存中则可以直接在内存中操作,速度很快,不需要再进行一次 IO 将整个 Bl