hbase - HBase 会在不同机器上存储同一行的列族吗?

标签 hbase

同一行的列族属于同一个 RegionServer。
那么,这里的问题是一个 RegionServer 会在不同的机器上存储不同的列族吗?

最佳答案

不一定,但在某些时候它会。这是基本 HBase 架构的一部分。如果你将一个 HBase 表想象成一个电子表格,有它的行和列,那么一个区域跨越一个方向的多个连续行和一个或多个列族的所有列。
这样,整个工作表都被区域瓷砖覆盖。

每个区域存储在一个或多个(通常为三个)集群节点上。 (如果您一次释放包含特定区域的所有节点,则会释放该区域的所有数据。如果您只释放一个副本,HBase 会确保将其从剩余副本复制到另一个节点。)

现在,当一个区域中包含的数据增长过大时,HBase 会自动发起区域拆分,从而产生两个新区域,每个区域包含一半的数据。只有通过区域拆分(除了区域复制),数据最终才能分布在 HBase 集群上。

将一行的数据存储在同一列族的不同列中,可以确保数据一起存储在一个地方。

关于hbase - HBase 会在不同机器上存储同一行的列族吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244289/

相关文章:

hadoop - 无法在 Cloudera Manager 中启动 HBase

java - 为什么在 Java NIO Selector 中使用 iterator.remove() 迭代 SelectionKey

java - 无法从开始获得STORM NEW VERSION(1.0.1)中的消息

java - 将数据加载到Hbase

hadoop - HBase删除多行的高效方法

python - 存储时间戳的最佳方式

java - 无法启动 HBase shell

hadoop - 根据时间戳从 Hive 访问 HBase 表数据

hadoop - HDFS系统在磁盘上的物理路径在哪里?

java - 在 Java 中将字符串转换为可逆的内容