HTableDescriptor htd = new HTableDescriptor(table);
上述语句将 htable描述符视为已弃用
我搜索了很多地方,但却无法为此寻找替代方案......感谢任何帮助
答案 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();