JAR 不存在或不是普通文件

问题描述 投票:0回答:6

Hadoop
中运行字数统计示例时,我遇到以下错误。

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
java hadoop jar hdfs
6个回答
9
投票

只需转到该路径并检查名称是否正确,约定可能因发行版而异。

例如hadoop 3.1.0在以下路径:

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar


4
投票

我遇到了同样的问题,问题出在文件中的版本号上。例如,在安装说明中,命令是:

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.]+'


2
投票

只需检查您的 jar 文件中是否包含所有依赖项即可。 尝试这样的事情。

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0-jar-with-dependencies.jar  wordcount input output

1
投票

由于

.jar
路径可能因发行版而异,因此很难说出确切的路径,显然,您可以 cd 进入每个目录并检查,但您是否想过有一种简单的方法。只需执行以下命令,它就会列出所有名为
hadoop-mapreduceexamples-2.2.0.jar
的 jar 文件以及确切位置,

find . -name hadoop-mapreduceexamples-2.2.0.jar

或者如果您不知道

.jar
文件的名称,您可以尝试这个,

find . -name *.jar

1
投票

我也遇到了这个问题,因为我在

/opt/module/hadoop-3.1.3/wcinput
目录中。

当 cd

/opt/module/hadoop-3.1.3
时,然后再试一次:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
.

成功了。


0
投票

我正在为一个学校项目做这个,他们在底部有这个。我们的问题的解决方案: 运行:

export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

编译

hadoop com.sun.tools.javac.Main WordCount.java

制作罐子:

jar cf wc.jar WordCount*.class

最后,正如我们所做的那样......:

hadoop jar wc.jar WordCount /user/your_name/wordcount/input /user/your_name/wordcount/output

运行它,立即生效。

© www.soinside.com 2019 - 2024. All rights reserved.