以下代码不能实现我的需求,删除了我以往的所有列簇包括数据,然后添加新的。
只需要添加新的列簇,以往数据保证不动。青牛老师,救急求方案 T T
// 得到hbase的连接,主要是和zk发起连接请求
val connection = ConnectionFactory.createConnection(hbaseConf)
// 得到hbase的管理对象
val admin = connection.getAdmin
// 得到表描述
val htc = new HTableDescriptor(userTable)
// 得到表操作
val tablex = connection.getTable(userTable).asInstanceOf[HTable]
val it = valuemap.keySet().iterator()
while (it.hasNext) {
val key = it.next().asInstanceOf[String]
val keyvalue = valuemap.get(key).asInstanceOf[String]
//判断列簇是否存在
if (!booleanUtil.columnFamilyExists(tablex, key)) {
admin.disableTable(userTable)
val hcd1 = new HColumnDescriptor(Bytes.toBytes(key))
//表增加family信息
htc.addFamily(hcd1)
admin.modifyTable(userTable, htc)
admin.enableTable(userTable)
}
}
try {
if (admin != null) {
admin.close()
}
if (tablex != null) {
tablex.close()
}
if (connection != null) {
connection.close()
}