Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1216867
  • 博文数量: 259
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2518
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-13 16:12
个人简介

科技改变世界,技术改变人生。

文章分类

全部博文(259)

分类: 大数据

2015-04-29 18:21:28

今天遇到一个问题,(Hive 0.9.0 和 hbase0.93.3)
hive与hbase进行关联的时候,hbase录入的数据,但是select hive中的表示,提示如下错误:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.mapred.TableMapReduceUtil.initCredentials(Lorg/apache/hadoop/mapred/JobConf;)V
    at org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat.getSplits(HiveHBaseTableInputFormat.java:419)
    at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:281)
    at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:320)
    at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:154)
    at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1377)
    at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:269)
    at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:215)
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:406)
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:689)
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:557)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

hive和hbase版本不兼容问题,使用
hbase-0.94.7 和 hive-0.9.0 就可以了
进入/usr/local/hive/lib/ 可以看到hbase的信息,使用此版本的即可。

hive版本查看
#ls /usr/local/hive/lib/

hbase版本查看
#hbase shell
>version


测试命令
#hive
>CREATE TABLE hbase_table_1(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "hbase_fudk");

#hbase shell
>list
>describe 'hbase_fudk'
>put 'hbase_fudk','0000000001','cf1:val',''
>scan 'hbase_fudk'
>exit

#hive
>select * from hbase_table_1;


阅读(2765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~