java.lang.nosuchmethoderror:org.apache.hadoop.conf.configuration.addDeprection

k5ifujac  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(720)

我计划安装 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)

如何解决这个问题?

db2dz4w8

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重建配置单元分发版

安装配置单元时,必须使用以下命令构建配置单元分发版:

mvn clean install -Phadoop-2,dist

尝试此命令:

mvn clean install -Phadoop-1,dist

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

2nc8po8w

2nc8po8w2#

删除hadoop-core-1.2.1.jar依赖项,它适合我

3z6pesqy

3z6pesqy3#

你可能已经 hadoop-core-1.2.1.jarHadoop 2.x.x 类路径目录,将其删除(这对我很有效)

相关问题