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

时间:2017-03-06 16:57:22

标签: hbase

使用hbase-client v.1.1.2。

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

  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并使用不推荐使用的方法来更改表名。 / p>

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

1 个答案:

答案 0 :(得分:0)

看来你正在寻找this

 /**
  * 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) {