hive与hbase交互时遇见的异常

建立hive和hbase的交互表时遇见的异常


 

Cannot find class 'org.apache.hadoop.hive.hbase.struct.HBaseStorageHandler'

解决办法 : 

  1. 打开一个eclipse
  2. 在eclipse中随便创建已给java工程
  3. 将我们之前下载好的源码(hive-hbase-handler-1.2.1-sources解压)导入到eclipse的src目录下,这个时候一会发现一堆错误提示
    file ---> import ---> filesystem--->选择你的源码--->finish      

  4. 创建一个lib目录,把准备好的jar包都拷贝到lib目录中

  5. 选中所有的jar包---鼠标右键--->build path
  6. 导出
    file--->export--->jar file --->
  7. 将这个jar包拷贝回hive的lib目目录中,把原来的那个jar包给干掉!!!

  tip:上述源码下载方法

      在idea的maven项目中的pom文件中添加下列依赖进行下载

      <dependency>

        <groupId>org.apache.hive</groupId>
        <artifactId>hive-hbase-handler</artifactId>
        <version>1.2.1</version>
      </dependency>

tip:

既要协调使用hive中的jar,也要使用hbase中的jar包。但是hive的hive-hbase-handler-1.2.1.jar中引用的关于hbase的jar包版本过低(0.9x),所以导致hbase的版本不支持。

 

1.2 / 启动hive时失败报错误  

  Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal,but interface was expected

 

  解决方案:
    cp /usr/apps/hive/hive‐1.2.1/lib/jline‐2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib/

 

posted @ 2019-05-20 22:07  mappler  阅读(538)  评论(0编辑  收藏  举报