java.lang.NoSuchMethodError:org.apache.hadoop.conf.Configuration.addDeprecation

use*_*050 4 hadoop

我计划安装hive0.12hadoop-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)
Run Code Online (Sandbox Code Playgroud)

如何解决问题?

Don*_*Lee 5

原因

从hadoop 2.3.0添加了org.apache.hadoop.conf.Configuration.addDeprecation()方法。但是正如您所写,您的hadoop分布为1.2.1。简而言之,您的配置单元安装和hadoop安装不适合。您的蜂巢安装必须针对hadoop 1.2.1进行重建。

首选:将您的hadoop安装升级到2.xx

这种方法很简单。由于hadoop 1.2.1将不再更新,因此升级安装是可行的。删除当前的hadoop安装并安装hadoop 2.5.1(最新版本,到目前为止)。要安装它,建议使用他的教程

第二选择:为hadoop 1.2.1重建您的配置单元发行版

在安装蜂巢发行版时,必须使用以下命令对其进行构建:

mvn clean install -Phadoop-2,dist
Run Code Online (Sandbox Code Playgroud)

试试这个命令:

mvn clean install -Phadoop-1,dist
Run Code Online (Sandbox Code Playgroud)

使用此命令,将在Packaging / target / apache-hive-0.12-bin目录中创建输出。用它替换当前的配置单元安装。