无法运行hadoop的基本示例

时间:2018-02-20 10:09:54

标签: hadoop hadoop2

Hadoop版本2.9.0,Java - 1.8.0_162
当尝试运行此处给出的示例:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html时,在独立操作下,我收到以下错误:

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'

java.lang.NoSuchMethodError: org.apache.hadoop.util.ProgramDriver.run([Ljava/lang/String;)I
    at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

我是hadoop的新手,不知道如何解决这个问题。我在hadoop-env.sh中设置了JAVA_HOME。我很确定我使用的是java和hadoop的正确兼容版本 任何帮助都会有用。

1 个答案:

答案 0 :(得分:0)

尼什,

错误消息表示虽然运行时能够找到类ProgramDriver,但函数run()不存在。

最可能的原因是您正在运行旧版本的Hadoop,暴露了ProgramDriver中的差异界面。大约一年前,这个方法在被调用driver()之后被重命名为run()。

对此的修复将确保您运行最新版本的Hadoop。

供您参考,请查看他们提出相同问题的以下链接。

Error while executing hadoop-mapreduce-examples-2.2.0.jar

Can the hadoop programm which write under the hadoop-2.2.0 run in hadoop-1.2.1?