执行mapreduce作业时发生hive-HBase ClassNotFound

时间:2014-11-06 08:59:53

标签: hive hbase

我有一个hive + hbase集成群集。 我创建了一个表:     CREATE TABLE hbase_table_1(key int,value string)     存储者'org.apache.hadoop.hive.hbase.HBaseStorageHandler'     WITH SERDEPROPERTIES(“hbase.columns.mapping”=“:key,cf1:val”)     TBLPROPERTIES(“hbase.table.name”=“xyz”);

执行时没关系:     select * from hbase_table_1;

但是当我执行count操作时,会发生classnotfound错误。     从hbase_table_1;

中选择count(*)

错误信息是:     java.io.IOException:找不到类          在org.apache ............. HiveInputformat.getRecordReader(HiveInputFormat.java:220)            ...........     引起:java.lang.ClassNoteFoundException:            在java.lang.Class.forName0(本机方法)

那些错误信息没有注意到我是哪一类。

抱歉我的英语不好。

有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

1) COPY THESE FILES TO THE HADOOP LIBRARY.

    sudo cp /usr/lib/hive/lib/hive-common-0.7.0-cdh3u0.jar  /usr/lib/hadoop/lib/

    sudo cp /usr/lib/hive/lib/hbase-0.90.1-cdh3u0.jar  /usr/lib/hadoop/lib/

    sudo cp /usr/lib/hive/lib/hbase-0.90.1-cdh3u0.jar  /usr/lib/hadoop/lib/



    2)CLOSE HBASE AND HADOOP USING FOLLOWING COMMOND

    /usr/lib/hadoop/bin/stop-all.sh
    /usr/lib/hbase/bin/stop-hbase.sh

3) RESTART HBASE AND HADOOP USING COMMOND 
 /usr/lib/hadoop/bin/start-all.sh
/usr/lib/hadoop/bin/start-hbase.sh

现在使用Hbase存储处理程序在hive中创建表。