使用/usr/local/hadoop/bin/hadoop jar Merge.jar org/apache/hadoop/examples/count input output出现Exception in thread "main" java.lang.ClassNotFoundException: -libjars at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.apache.hadoop.util.RunJar.run(RunJar.java:237) at org.apache.hadoop.util.RunJar.main(RunJar.java:158)怎么解决
时间: 2023-08-06 21:04:16 浏览: 92
根据异常信息,似乎缺少了您要运行的 Merge.jar 的类名。请确保您在运行命令时正确指定了要运行的类名,并将类名放在 jar 文件名之前。您可以尝试执行以下命令:
```
/usr/local/hadoop/bin/hadoop jar Merge.jar org.apache.hadoop.examples.Merge input output
```
在这个命令中,`Merge.jar` 是您要运行的 jar 文件的名称,`org.apache.hadoop.examples.Merge` 是您要运行的类的名称,`input` 和 `output` 是您要在 Hadoop 上运行作业的输入和输出路径。请根据您的实际情况进行替换。
相关问题
/usr/local/hadoop/bin/hadoop jar Merge.jar org/apache/hadoop/examples/Merge input output
这个命令也可以用来运行 `/usr/local/hadoop/Merge` 目录下的 `Merge.jar`,不过需要注意以下几点:
1. 这个命令中的 `org/apache/hadoop/examples/Merge` 表示 MapReduce 程序的类名,如果 `Merge.jar` 中的主类就是这个类,那么这个命令就可以正常运行。如果程序的主类不是这个类,需要将命令中的类名替换成程序的主类名。
2. 这个命令中的 `input` 和 `output` 分别表示输入路径和输出路径,如果你的输入路径和输出路径不是 `/input` 和 `/output`,需要将命令中的路径替换成你实际使用的路径。
综上所述,如果你的 `Merge.jar` 中的主类就是 `org/apache/hadoop/examples/Merge`,并且你的输入路径为 `/input`,输出路径为 `/output`,那么可以使用以下命令运行:
```
/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/Merge/Merge.jar org/apache/hadoop/examples/Merge /input /output
```
如果程序的主类不是 `org/apache/hadoop/examples/Merge`,需要将命令中的类名替换成程序的主类名。如果输入路径和输出路径不是 `/input` 和 `/output`,需要将命令中的路径替换成你实际使用的路径。
cd /usr/local/hadoop/bin/hadoop jar ./myapp/WordCount.jar input output
这是一个运行在 Hadoop 分布式计算框架上的 WordCount 应用程序的命令,它将输入文件夹中的文件作为输入,将输出结果写入到输出文件夹中。具体来说,这个命令会启动 Hadoop 容器,并在其中运行 WordCount.jar 应用程序,该程序将对输入文件夹中的文件进行单词计数,最终将结果写入到输出文件夹中。
阅读全文