我计划安装 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)
如何解决问题?
最佳答案
原因
org.apache.hadoop.conf.Configuration.addDeprecation() 方法是从 hadoop 2.3.0 添加的。但是正如您所写,您的 hadoop 发行版是 1.2.1。简而言之,您的 hive 安装和 hadoop 安装不匹配。必须为 hadoop 1.2.1 重建您的配置单元安装。
解决方案
第一选择:将您的 hadoop 安装升级到 2.x.x
这种方法是最简单的方法。由于 hadoop 1.2.1 将不再更新,因此升级您的安装是可行的。删除当前的 hadoop 安装并安装 hadoop 2.5.1(最新版本,截至目前。)。为了安装它,他的 tutorial推荐。
第二个选择:为 hadoop 1.2.1 重建你的配置单元
安装 Hive 时,您必须使用以下命令构建它:
mvn clean install -Phadoop-2,dist
试试这个命令:
mvn clean install -Phadoop-1,dist
使用此命令,将在 packaging/target/apache-hive-0.12-bin 目录中创建输出。用它替换您当前的配置单元安装。
关于hadoop - java.lang.NoSuchMethodError : org. apache.hadoop.conf.Configuration.addDeprecation 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24566157/