我有hadoop-2.2.0在我的电脑和我写了一个程序在这个版本下。现在我需要在一个大的集群中测试它,但是在hadoop集群中的机器是hadoop-1.2.1。当我尝试在其上运行程序时,出现错误:
java.lang.nosuchmethoderror:org/apache/hadoop/util/programdriver.run([ljava/lang/string;)我在org.apache.hadoop.examples.exampledriver.main(exampledriver。java:74)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:94)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:55)在java.lang.reflect.method.invoke(方法。java:619)在org.apache.hadoop.util.runjar.main(runjar。java:160)
我在谷歌上搜索了一下,似乎是版本的问题。那么,在旧版本的hadoop上运行用新版本hadoop编写的程序是不可能的吗?提前谢谢!
1条答案
按热度按时间qco9c6ql1#
这取决于你的map reduce程序和它使用的类(我的直觉是is不起作用)。hadoop-1.x.x到2.x.x是主要的版本更改,因此在程序中使用的类和库将会有重大的更改。说到这里,我鼓励您检查版本的发行说明。