hbase中的HTableDescriptor(表)是否已弃用,可替代?

时间:2016-02-26 21:13:13

标签: hadoop hbase

  

HTableDescriptor htd = new HTableDescriptor(table);

上述语句将 htable描述符视为已弃用

我搜索了很多地方,但却无法为此寻找替代方案......感谢任何帮助

2 个答案:

答案 0 :(得分:3)

我猜你正在使用带有字符串参数的构造函数,即你的参数变量'table'是一个字符串:

HTableDescriptor(String name); //Deprecated

您需要构造一个表描述符,将TableName对象指定为:

HTableDescriptor(TableName name);

有关TableName对象的更多详细信息,您可以使用以下链接: https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/TableName.html

答案 1 :(得分:0)

  

HTableDescriptor从2.0.0版本开始,它将在HBase 3.0.0中删除。    *使用{@link TableDescriptorBuilder}构建{@link HTableDescriptor}。

    TableName tname = TableName.valueOf(fullTableName);
    TableDescriptorBuilder tableDescBuilder = TableDescriptorBuilder.newBuilder(tname);
    ColumnFamilyDescriptorBuilder columnDescBuilder = ColumnFamilyDescriptorBuilder
            .newBuilder(Bytes.toBytes(family)).setBlocksize(32 * 1024)
            .setCompressionType(Compression.Algorithm.SNAPPY).setDataBlockEncoding(DataBlockEncoding.NONE);
    tableDescBuilder.setColumnFamily(columnDescBuilder.build());
    tableDescBuilder.build();