Hbase 1.0之后API改进与升级:

最近发觉网上教程略显陈旧,API还是使用老式的API,导致代码成片的deprecated警告。下面是升级后的HbaseAdmin Java API:
旧API | 新API |
Configuration config = new Configuration();
config.set("hbase.zookeeper.quorum", "a.com,b.com,c.com,d.com");
try (HBaseAdmin admin = new HBaseAdmin(config)) {
// do something
admin.close();//关闭连接
}catch (IOException e){
e.printStackTrace();
}
| Configuration config = new Configuration();
config.set("hbase.zookeeper.quorum", "a.com,b.com,c.com,d.com");
try(Connection connection = ConnectionFactory.createConnection(config)){// HBase 0.99+
HBaseAdmin admin = (HBaseAdmin) connection.getAdmin();
// do something
admin.close();//关闭连接
}catch(IOException e){
e.printStackTrace();
} |
升级后跟后代的兼容性也会好很多。
另一个升级是Put类的升级,将add方法变为addColumn方法:
旧API | 新API |
Put put = new Put(rowkey.getBytes());
put.add("cf1".getBytes(),"phone".getBytes(),
phone.getBytes());
put.add("cf1".getBytes(),"dest".getBytes(),
getPhone("151"+j).getBytes());
put.add("cf1".getBytes(),"type".getBytes(),
(r.nextInt(2)+"").getBytes());
put.add("cf1".getBytes(),"date".getBytes(),
date.getBytes()); | Put put = new Put(rowkey.getBytes());
put.addColumn("cf1".getBytes(),
"phone".getBytes(),phone.getBytes());
put.addColumn("cf1".getBytes(),
"dest".getBytes(),getPhone("152"+j).getBytes());
put.addColumn("cf1".getBytes(),
"type".getBytes(),(r.nextInt(2)+"").getBytes());
put.addColumn("cf1".getBytes(),
"date".getBytes(),date.getBytes()); |