Hbase 在HTableDescriptor中更改表名的推荐方法是什么?

Hbase 在HTableDescriptor中更改表名的推荐方法是什么?,hbase,Hbase,使用hbase客户端v。1.1.2 HTableDescriptorAPI提供了两个公共构造函数: public HTableDescriptor(final TableName name) {... ... public HTableDescriptor(final HTableDescriptor desc) {... 和2种不推荐的更改表名的方法: @Deprecated public HTableDescriptor setName(byte[] name) {

使用hbase客户端v。1.1.2

HTableDescriptor
API提供了两个公共构造函数:

  public HTableDescriptor(final TableName name) {...
  ...
  public HTableDescriptor(final HTableDescriptor desc) {...
和2种不推荐的更改表名的方法:

  @Deprecated
  public HTableDescriptor setName(byte[] name) {
    setName(TableName.valueOf(name));
    return this;
  }

  @Deprecated
  public HTableDescriptor setName(TableName name) {
    this.name = name;
    setMetaFlags(this.name);
    return this;
  }
没有关于用户应该做什么的评论

因此,要克隆一个
HTableDescriptor
,选项是(a)使用第一个ctor并手动复制所有字段,或者(b)使用第二个ctor并仅使用不推荐的方法更改表名


推荐的方法是什么?为什么API似乎不鼓励直接更改名称,除非通过ctor?

您似乎在寻找:

/**
*通过克隆作为参数传递的描述符来构造表描述符
*但是使用不同的表名。
*
*生成所提供描述符的深度副本。
*可以从不可修改的描述符生成可修改的描述符。
*@param name表名。
*@param desc描述符。
*/
公共HTableDescriptor(最终表名,最终HTableDescriptor描述){

遗憾的是,出于某种原因,我使用的是1.12,它没有包含这个ctor。@jordanpg好吧,如果您查看github代码,您会发现即使在主分支中,不推荐的方法仍然是更改表名的唯一方法。
 /**
  * Construct a table descriptor by cloning the descriptor passed as a parameter
  * but using a different table name.
  * <p>
  * Makes a deep copy of the supplied descriptor.
  * Can make a modifiable descriptor from an UnmodifyableHTableDescriptor.
  * @param name Table name.
  * @param desc The descriptor.
  */
 public HTableDescriptor(final TableName name, final HTableDescriptor desc) {