无法使用Java程序读取HDFS:无法找到或加载主类

时间:2013-01-31 05:20:18

标签: java hadoop hdfs

我正在尝试cat存储在HDFS中的文件。我尝试了 Hadoop:The Definitive Guide 一书的标题Reading Data from a Hadoop URLReading Data Using the FileSystem API下提供的方法,但我一直收到错误:

Error: Could not find or load main class <class_name>

有人可以指出我做错了吗?

2 个答案:

答案 0 :(得分:1)

第1步:编译Java程序:

javac URLCat.java -classpath $HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.0.jar

第2步:创建jar文件:

jar cvf URLCat.jar URLCat.class

步骤3:执行程序:(提及你的hdfs文件位置)

hadoop jar URLCat.jar URLCat hdfs://localhost:9000/pcode/wcinput.txt

答案 1 :(得分:0)

我看不到链接中的所有页面,但我想我知道发生了什么。您正在尝试运行这样的命令。

% hadoop URLCat <HDFS URL>

您遇到的错误与Hadoop无法在其类路径中找到类URLCat有关。您可以编辑hadoop命令文件以在其类路径中包含URLCat。但不建议这样做。

最好的方法是创建一个内置URLCat类的jar文件,并使用以下命令调用

% hadoop jar <Path to Jar>/<Your Jar>.jar URLCat <HDFS URL>

阅读此博客post,了解有关如何运行jar的更多信息。