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/