Java 如何从hbase表中删除列族及其存储文件,并保持该表处于启用状态?

Java 如何从hbase表中删除列族及其存储文件,并保持该表处于启用状态?,java,hbase,Java,Hbase,hbase类的java方法从指定的hbase表中删除指定的列族。(尽管名称不同,该方法删除的是族,而不是列视图) 更改表的架构,但不会从文件系统中删除列族的存储文件。我观察到HBase 1.2.3/1.0.3在独立模式和伪分布式模式下的这种效果。hbase-site.xml配置文件中的联机架构更新属性已打开: <property> <name>hbase.online.schema.update.enable</name> <val

hbase类的java方法从指定的hbase表中删除指定的列族。(尽管名称不同,该方法删除的是族,而不是列视图)

更改表的架构,但不会从文件系统中删除列族的存储文件。我观察到HBase 1.2.3/1.0.3在独立模式和伪分布式模式下的这种效果。hbase-site.xml配置文件中的联机架构更新属性已打开:

  <property>
    <name>hbase.online.schema.update.enable</name>
    <value>true</value>
  </property>
但这是不合适的,因为该表应该可以永久读取和写入。因此,问题是:
  • deleteColumn()方法不从文件系统中删除列族的存储文件的原因是什么?
  • 绕过HBase API:call删除这些文件安全吗
    admin.deleteColumn(tableName,familyByteName)首先,然后通过HDFS Java API删除存储文件?
    
  • 是否可以从hbase表中删除列族,删除族的存储文件,并保持该表处于启用状态?

    PS:这里有一个类似的链接

      <property>
        <name>hbase.online.schema.update.enable</name>
        <value>true</value>
      </property>
    
    Admin admin = connection.getAdmin();
    admin.disableTable(tableName);
    admin.deleteColumn(tableName, familyByteName);
    admin.enableTable(tableName);