HBase会将列系列存储在不同机器的同一行吗?

Jam*_*mes 7 hbase

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

小智 5

不一定,但在某些时候会。这是基本HBase体系结构的一部分。如果将HBase表成像为具有行和列的电子表格,则区域将在一个方向上跨越多个连续的行,并跨越一个或多个列族的所有列。这样,整个工作表就会被区域图块覆盖。

每个区域存储在一个或多个(通常是三个)群集节点上。(如果一次删除所有包含特定区域的节点,则一次删除所有区域的数据。如果仅一次删除一个副本,则HBase确保将其从其余副本中复制到另一个节点。)

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

在同一列系列的不同列中存储一行数据可确保将数据存储在一个位置。