Java:在Apache Hadoop中找不到PageRank算法的类
我试图在ApacheHadoop(2.6.5)集群(1主2从)中运行PageRank算法。我正在使用此存储库中的程序-。我可以用这个命令编译所有的源代码-Java:在Apache Hadoop中找不到PageRank算法的类,java,maven,hadoop,Java,Maven,Hadoop,我试图在ApacheHadoop(2.6.5)集群(1主2从)中运行PageRank算法。我正在使用此存储库中的程序-。我可以用这个命令编译所有的源代码- sudo javac -classpath ${HADOOP_CLASSPATH} -d ./build src/it/uniroma1/hadoop/pagerank/PageRank.java src/it/uniroma1/hadoop/pagerank/job1/PageRankJob1Mapper.java src/it/uniro
sudo javac -classpath ${HADOOP_CLASSPATH} -d ./build src/it/uniroma1/hadoop/pagerank/PageRank.java src/it/uniroma1/hadoop/pagerank/job1/PageRankJob1Mapper.java src/it/uniroma1/hadoop/pagerank/job1/PageRankJob1Reducer.java src/it/uniroma1/hadoop/pagerank/job2/PageRankJob2Mapper.java src/it/uniroma1/hadoop/pagerank/job2/PageRankJob2Reducer.java src/it/uniroma1/hadoop/pagerank/job3/PageRankJob3Mapper.java
我使用以下命令创建了jar文件sudojar-cf build/pagerank.jar build/
我试着像wordcount示例一样运行程序,如下所示-
sudo bin/hadoop jar hadoop-pagerank/build/pagerank.jar PageRank --
input /usr/local/hdfs/web-Google.txt --output /usr/local/hdfs-out-PR
Exception in thread "main" java.lang.NoClassDefFoundError: PageRank (wrong name: it/uniroma1/hadoop
/pagerank/PageRank)
有时我会犯这样的错误-
sudo bin/hadoop jar hadoop-pagerank/build/pagerank.jar PageRank --
input /usr/local/hdfs/web-Google.txt --output /usr/local/hdfs-out-PR
Exception in thread "main" java.lang.NoClassDefFoundError: PageRank (wrong name: it/uniroma1/hadoop
/pagerank/PageRank)
有时我会在线程“main”java.lang.ClassNotFoundException:PageRank中遇到类似这样的错误-异常,用于不同类型的编译。
我不确定我做错了什么。有谁能帮助我在Hadoop中编译和运行程序的正确步骤吗?我没有任何pom.xml文件,我能够运行提供的wordcount示例jar。您必须在类名称之前使用包名称, 这意味着您必须使用:
it.uniroma1.hadoop.pagerank.pagerank
而不是PageRank
听从你的指挥。
像这样:
hadoop jar hadoop pagerank/build/pagerank.jar it.uniroma1.hadoop.pagerank.pagerank--input/usr/local/hdfs/web-Google.txt--output/usr/local/hdfs out PR
您需要在包中给出完整的类名it.uniroma1.hadoop.pagerank.pagerank