Java 向Hbase表插入数据报(org.apache.hadoop.hbase.client.HTablePool$PooledHTable cannot be cast to org.apac),hbasehtablepool
Java 向Hbase表插入数据报(org.apache.hadoop.hbase.client.HTablePool$PooledHTable cannot be cast to org.apac),hbasehtablepool
org.apache.hadoop.hbase.client.HTablePool$PooledHTable cannot be cast to org.apac
代码:
//1.create HTablePool
HTablePool hp=new HTablePool(con, 1000);
//2.get HTable from HTablepool
HTable ht=(HTable)hp.getTable(tName);
原因:如今应用的api版本中pool.getTable返回的类型是HTableInterface
,无法强转为HTable
解决办法:
ht.put(put); 换成
hp.getTable(tName).put(put);
遇见这种问题,如果不知道问题根源,需要把打印插入数据的sql语句,在数据库层,执行语句,排查是否是数据库的原因,然后再次排查网络原因,最后就是代码的原因了,一般如果以前没遇到问题,忽然出现这种情况大多是非代码原因!搞技术的没有帮忙查错的,只有帮忙如何找错的!
可以一次插入一行啊,HTableInterface.put(Put p)插入一个Put对象
public Put(byte [] row) 一个对象就是一行
public Put add(byte [] family, byte [] qualifier, long ts, byte [] value);继续添加列
评论暂时关闭