我计划使用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)
如何解决问题?
答案 0 :(得分:4)
org.apache.hadoop.conf.Configuration.addDeprecation()方法。但正如你所写,你的hadoop发行版是1.2.1。简而言之,您的蜂巢安装和hadoop安装彼此不适合。必须为hadoop 1.2.1重建您的配置单元。
这种做法很容易。由于hadoop 1.2.1不再更新,升级安装是可行的。删除当前的hadoop安装并安装hadoop 2.5.1(最新版本,截至目前)。要安装它,建议使用tutorial。
安装时,必须使用以下命令构建hive发行版:
mvn clean install -Phadoop-2,dist
尝试此命令:
mvn clean install -Phadoop-1,dist
使用此命令,将在 packaging / target / apache-hive-0.12-bin 目录中创建输出。用它替换你当前的配置单元。
答案 1 :(得分:1)
您可能已将hadoop-core-1.2.1.jar
放在Hadoop 2.x.x
类路径目录中,将其删除。 (这对我有用)
答案 2 :(得分:0)
删除您的hadoop-core-1.2.1.jar依赖项,对我有用