hbase deleteColumn类的java方法Admin从指定的HBase表中删除指定的列族。 (尽管它的名称该方法删除了系列,而不是列 - 查看HBASE-1989。)实际上是代码
Admin admin = connection.getAdmin();
admin.deleteColumn(tableName, familyByteName);
更改了表的架构,但它不会从文件系统中删除列族的存储文件。我在独立模式和伪分布式模式下用HBase 1.2.3 / 1.0.3观察到这种效应。 hbase-site.xml配置文件中的联机架构更新属性已打开:
<property>
<name>hbase.online.schema.update.enable</name>
<value>true</value>
</property>
我找到了通过Java API删除列族HFile的唯一方法 - 禁用删除列族前面的表:
Admin admin = connection.getAdmin();
admin.disableTable(tableName);
admin.deleteColumn(tableName, familyByteName);
admin.enableTable(tableName);
但这不合适,因为该表应该可以永久读写。所以问题是:
admin.deleteColumn(tableName, familyByteName);
,然后通过HDFS Java API删除存储文件?
PS:这是指向类似question的链接。