在Hadoop
中运行wordcount示例时,我遇到以下错误。
saying "JAR does not exist or is not a normal file:
/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar"
我的输入命令是:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar wordcount input output
答案 0 :(得分:2)
我遇到了同样的问题,问题在于文件中的版本号。例如,在安装说明中,命令为:
bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples- 3.2.1 .jar grep输入输出'dfs [a-z。] +'
我正在使用的版本是3.1.3,所以对我有用的是:
bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples- 3.1.3 .jar grep输入输出'dfs [a-z。] +'
答案 1 :(得分:1)
如果名称正确与否,请转到该路径并检查它,约定可能因分布而异。
例如,hadoop 3.1.0在以下路径中有它:
$ HADOOP_HOME /共享/的hadoop / MapReduce的/ Hadoop的MapReduce的例子-3.1.0.jar
答案 2 :(得分:0)
只需检查所有依赖项是否都包含在jar文件中。 尝试这样的事情。
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0-jar-with-dependencies.jar wordcount input output
答案 3 :(得分:0)
由于 .jar
路径可能因发行版而异,因此很难说出确切的路径,显然,您可以 cd 进入每个目录并检查,但您曾想过有一种简单的方法。只需执行以下命令,它就会列出所有名为 hadoop-mapreduceexamples-2.2.0.jar
的 jar 文件以及确切位置,
find . -name hadoop-mapreduceexamples-2.2.0.jar
或者如果您不知道 .jar
文件的名称,您可以试试这个,
find . -name *.jar