我计划安装 hive0.12
与 hadoop-1.2.1
. 之后 hadoop-1.2.1
安装后,我还配置了 hive0.12
. 但当我使用 bin/hive
我得到的命令:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.addDeprecation(Ljava/lang/String;Ljava/lang/String;)V
at org.apache.hadoop.hive.conf.HiveConf.<clinit>(HiveConf.java:77)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:74)
at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:58)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:639)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:623)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:160)
如何解决这个问题?
3条答案
按热度按时间db2dz4w81#
原因
org.apache.hadoop.conf.configuration.adddeprecation()方法是从Hadoop2.3.0添加的。但正如您所写的,hadoop发行版是1.2.1。简言之,您的配置单元安装和hadoop安装不匹配。必须为hadoop 1.2.1重新构建配置单元安装。
解决方案
第一选择:将hadoop安装升级到2.x.x
这是最简单的方法。由于hadoop1.2.1将不再更新,因此升级安装是可行的。删除当前的hadoop安装并安装hadoop2.5.1(最新版本)。对于安装它,推荐使用他的教程。
第二个选择:为Hadoop1.2.1重建配置单元分发版
安装配置单元时,必须使用以下命令构建配置单元分发版:
尝试此命令:
使用此命令,将在packaging/target/apache-hive-0.12-bin目录中创建输出。用它替换当前的配置单元安装。
2nc8po8w2#
删除hadoop-core-1.2.1.jar依赖项,它适合我
3z6pesqy3#
你可能已经
hadoop-core-1.2.1.jar
在Hadoop 2.x.x
类路径目录,将其删除(这对我很有效)