尝试了从配置单元处理hbase中的表的一个示例。
create external table命令成功,但select语句给出了类强制转换异常
env:hive 0.12.0、hbase 0.96.1、hadoop 2.2、ubuntu 12.04 on virtual box
hive> SHOW TABLES;
OK
hbatablese_myhive
Time taken: 0.309 seconds, Fetched: 1 row(s)
hive> SELECT * FROM hbatablese_myhive;
OK
**失败,出现异常
java.io.IOException:java.lang.ClassCastException: org.apache.hadoop.hbase.client.Result cannot be cast to org.apache.hadoop.io.Writable**
Time taken: 1.179 seconds
hive>
The same table on HBASE console:
hbase(main):002:0> scan 'myhive'
ROW COLUMN+CELL
row1 column=ratings:userid, timestamp=1392886585074, value=user1
row2 column=ratings:userid, timestamp=1392886606457, value=user2
2 row(s) in 0.0520 seconds
1条答案
按热度按时间nmpmafwu1#
以前有一个
Writables.copyWritable(Result result, Result value)
调用旧版本的next(Immutablebyteswritable key, Result value)
tablerecordreaderimpl.java的方法。这个
copyWritable
现在已被删除,并且只适用于可写的、可写的参数。现在要复制,你需要使用
value.copyFrom(result)
. 这会将数据从源深度复制到目标我猜你有一些库不匹配,这使这些调用发生,并试图从结果,结果到可写,可写