Hive 0.12.0 IncompatibleClassChangeError [英] Hive 0.12.0 IncompatibleClassChangeError

查看:238
本文介绍了Hive 0.12.0 IncompatibleClassChangeError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我的单节点Hadoop安装上安装配置单元。我正在运行Mint 16.我试过安装Hive 0.12.0和0.13.0。我已将HIVE_HOME,HIVE_HOME / bin和HIVE_HOME / lib(并且没有lib)添加到我的路径中。每次我从终端运行配置单元时,我都会得到以下堆栈:

 线程main中的异常java.lang.IncompatibleClassChangeError :在java.lang.ClassLoader.defineClass1上实现类
(本地方法)$ java.util.ClassLoader.defineClass上的
(未知源)$ java.security.SecureClassLoader.defineClass上的
(Unknown Source )在java.net.URLClassLoader.defineClass上的
(未知源代码)在java.net.URLClassLoader.access上的
$ 100(未知源代码)在java.net.URLClassLoader上的
$ 1.run(未知源代码)在java.net.URLClassLoader
$ 1.run(未知源)
在java.security.AccessController.doPrivileged(本地方法)
在java.net.URLClassLoader.findClass(未知源)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
在java.lang.ClassLoader.defineClass1(本地方法)$ b $在java.lang.ClassLoader.defineClass(未知源)
在java.security.SecureClassLoader.defineClass(未知源)
at java.net.URLClassLoader.defineClass(未知源代码)
在java.net.URLClassLoader.access $ 100(未知源代码)$ b $ java.net.URLClassLoader $ 1.run(未知源代码)
at java.net.URLClassLoader $ 1.run(未知源)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java .lang.ClassLoader.loadClass(未知源)
at sun.misc.Launcher $ AppClassLoader.loadClass(未知源)$ b $ java.util.ClassLoader.loadClass(未知源)
at java .lang.Class.forName0(本地方法)$ b $在java.lang.Class.forName(未知源)
在org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.ja VA:120)
。在org.apache.hadoop.hive.shims.ShimLoader.loadShims(ShimLoader.java:115)
。在org.apache.hadoop.hive.shims.ShimLoader.getHadoopShims(ShimLoader。 java:80)
at org.apache.hadoop.hive.conf.HiveConf $ ConfVars。< clinit>(HiveConf.java:248)
at org.apache.hadoop.hive.common.LogUtils .initHiveLog4j(LogUtils.java:58)
在org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:641)
在org.apache.hadoop.hive.cli.CliDriver在sun.reflect.NativeMethodAccessorImpl.invoke。主要(CliDriver.java:625)在sun.reflect.NativeMethodAccessorImpl.invoke0
(本机方法)
(来源不明)
。在sun.reflect。 DelegatingMethodAccessorImpl.invoke(来源不明)
在java.lang.reflect.Method.invoke(来源不明)
在org.apache.hadoop.util.RunJar.main(RunJar.java:212)

我也试图从源码编译配置单元,但maven在测试中失败秒。是否有其他人找到了解决方案?

编辑:
我没有在虚拟机中运行它。我在我的系统上构建了这个安装,所以我在google上看到了一些建议删除CDH等旧版本的旧节点库。



运行Oracle Java 1.8

p>

  $ hadoop版本
Hadoop 2.4.0
Subversion http://svn.apache.org/repos/通过詹金斯上2014-03-31T08编译ASF / hadoop的/共同-r 1583262
:29Z
编译时protoc 2.5.0
从源与校验375b2832a6641759c6eaf6e3e998147
使其运行此命令使用/opt/hadoop-2.4.0/share/hadoop/common/hadoop-common-2.4.0.jar

当我尝试编译配置单元时:

  testConfProperties(org.apache.hadoop.hive.conf.TestHiveConf)Time经过时间:0.331秒<<失败! 
java.lang.AssertionError:expected:< 1>但是:< null>
at org.junit.Assert.fail(Assert.java:93)
at org.junit.Assert.failNotEquals(Assert.java:647)
at org.junit.Assert.assertEquals (Assert.java:128)
在org.junit.Assert.assertEquals(Assert.java:147)
在org.apache.hadoop.hive.conf.TestHiveConf.checkHadoopConf(TestHiveConf.java:42 )
at org.apache.hadoop.hive.conf.TestHiveConf.testConfProperties(TestHiveConf.java:64)


解决方案

看起来我有几个问题。我必须用maven 3.0.5构建。然后我不得不在构建过程中跳过测试。最后,我决斗了,不得不删除

  /opt/hadoop-2.4.0/share/hadoop/mapreduce/hadoop -core-0.20.2-cdh3u1.jar 
/opt/hadoop-2.4.0/share/hadoop/tools/lib/hadoop-core-0.20.2-cdh3u1.jar


I'm trying to install hive on my single node Hadoop installation. I'm running Mint 16. I've tried installing Hive 0.12.0 and 0.13.0. I've added HIVE_HOME, HIVE_HOME/bin and HIVE_HOME/lib (and without lib) to my path. Each time I run hive from the terminal I'm getting the following stack

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.java:120)
        at org.apache.hadoop.hive.shims.ShimLoader.loadShims(ShimLoader.java:115)
        at org.apache.hadoop.hive.shims.ShimLoader.getHadoopShims(ShimLoader.java:80)
        at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:248)
        at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:58)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:641)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

I've also attemped to compile hive from source but maven fails on the test's. Has anyone else found a solution to this?

Edit: I'm not running this in a VM. I built the install on my system so I've seen a few things on google that suggest removing old thrift lib's on CDH and the like.

Running Oracle Java 1.8

$ hadoop version
Hadoop 2.4.0
Subversion http://svn.apache.org/repos/asf/hadoop/common -r 1583262
Compiled by jenkins on 2014-03-31T08:29Z
Compiled with protoc 2.5.0
From source with checksum 375b2832a6641759c6eaf6e3e998147
This command was run using /opt/hadoop-2.4.0/share/hadoop/common/hadoop-common-2.4.0.jar

When I try to compile hive:

testConfProperties(org.apache.hadoop.hive.conf.TestHiveConf)  Time elapsed: 0.331 sec  <<< FAILURE!
java.lang.AssertionError: expected:<1> but was:<null>
        at org.junit.Assert.fail(Assert.java:93)
        at org.junit.Assert.failNotEquals(Assert.java:647)
        at org.junit.Assert.assertEquals(Assert.java:128)
        at org.junit.Assert.assertEquals(Assert.java:147)
        at org.apache.hadoop.hive.conf.TestHiveConf.checkHadoopConf(TestHiveConf.java:42)
        at org.apache.hadoop.hive.conf.TestHiveConf.testConfProperties(TestHiveConf.java:64)

解决方案

Looks like I had a couple of issues. I have to build with maven 3.0.5. Then I had to skip tests during the build. Finally, I had dueling jars and had to remove

/opt/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-core-0.20.2-cdh3u1.jar
/opt/hadoop-2.4.0/share/hadoop/tools/lib/hadoop-core-0.20.2-cdh3u1.jar

这篇关于Hive 0.12.0 IncompatibleClassChangeError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆