gpt4 book ai didi

hadoop - ClassNotFoundException,在运行 Hadoop 示例作业时

转载 作者:可可西里 更新时间:2023-11-01 14:42:12 27 4
gpt4 key购买 nike

我已经在 hadoop 上开始了一些工作。它已正确设置并运行。现在我正在做一个单节点/独立集群。我正在尝试运行 http://hadoop.apache.org/common/docs/r0.18.3/mapred_tutorial.html 中提到的示例作业

至此,程序编译正确,jar已经创建,manifest添加成功。但是当我尝试运行该作业时出现此错误。

Exception in thread "main" java.lang.ClassNotFoundException: org.myorg.WordCount
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)

我已经复制粘贴了与链接中提到的完全相同的程序。但它给出了这个错误。这是我打的命令行。

[shantanu@shades1ld1 hadoop]$ bin/hadoop jar /home/shantanu/hadoop/src/examples/wordcount.jar org.myorg.WordCount /tmp/Hadoop_Jobs/ /tmp/Hadoop_Results

我翻了很多文章,但找不到对此的解释,请帮忙。

最佳答案

我发现我需要将它添加到示例应用程序中,让 hadoop 知道我的类文件在哪个 jar 中。

diff --git a/src/org/myorg/WordCount.java b/src/org/myorg/WordCount.java
index 912311a..8cc1b93 100644
--- a/src/org/myorg/WordCount.java
+++ b/src/org/myorg/WordCount.java
@@ -43,7 +43,8 @@ public class WordCount {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();

Job job = new Job(conf, "wordcount");
+ job.setJarByClass(WordCount.class);

job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);

我不确定这是否是 hadoop 的新功能,但 setJarByClass 会告诉 hadoop 使用基于该 jar 文件中包含的单个类的整个 jar。该 jar 必须仍在您的类路径中。这是我运行的命令:

hadoop jar wordcount.jar org.myorg.WordCount /usr/$USER/wordcount/input /usr/$USER/wordcount/output

我之前使用以下命令将示例文件复制到 HDFS 中:

hadoop dfs -copyFromLocal input/file01 /usr/$USER/wordcount/input/file01 
hadoop dfs -copyFromLocal input/file02 /usr/$USER/wordcount/input/file02
hadoop dfs -ls /usr/$USER/wordcount/input

其中输入/file01:

Hello World Bye World

和输入/file02:

Hello Hadoop Goodbye Hadoop

我放了一个github repo以及我能够开始工作的说明。

关于hadoop - ClassNotFoundException,在运行 Hadoop 示例作业时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com