【发布时间】:2013-09-12 12:13:49
【问题描述】:
在 HBase 中,调用 DeleteColumn() 方法,即本质上对列族进行架构更改或删除列族会导致 HBase 集群停机?
【问题讨论】:
-
你能解释一下你想要做什么吗?
-
我想知道更改架构(从数据和架构中删除列)是否需要关闭集群。
标签: hadoop nosql hbase bigdata
在 HBase 中,调用 DeleteColumn() 方法,即本质上对列族进行架构更改或删除列族会导致 HBase 集群停机?
【问题讨论】:
标签: hadoop nosql hbase bigdata
HBase 的 Delete mutation 上的 deleteColumn 方法从特定行中删除特定列,这不是架构更改,因为 HBase 不保留每行列的架构级知识(并且每行可以有不同数量和类型的列 - 将其视为一个稀疏的矩阵)。此对象上的 deleteFamily 也是如此。
不会因此导致集群停机(并且 HBase 不会真正删除数据,直到该区域的下一次主要压缩)
如果你想从整个表中删除一个列族,你可以通过 HBaseAdmin 使用名称不太恰当的 deleteColumn 方法(或带有 alter 'table_name', {NAME => 'family_name', METHOD => 'delete'} 的 shell)来实现 - 在这种情况下,需要禁用表首先,虽然 HBase 不会停机,但特定表会
【讨论】: