的ReadFromHadoopURL文件的內容如下:試圖讀取Hadoop的URL數據,但無法做到so.I我得到錯誤
package com.felix.hadoop.training;
import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
// URLCat
public class ReadFromHadoopURL {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws Exception {
InputStream in = null;
try {
in = new URL(args[0]).openStream();
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}
}
}
然後創建了一個jar文件ReadFromHadoopURL.jar。
然後,我跑到這個命令
hadoop jar /home/training/Pradosh/ReadFromHadoopURL.jar ReadFromHadoopURL hdfs://localhost:54310/my/empfile
我收到此錯誤
Exception in thread "main" java.lang.ClassNotFoundException: ReadFromHadoopURL
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
能否請你幫我調試這個?
這是不正確的。您不必擁有Mapper即可運行與Hadoop交互的應用程序。另外,'hadoop jar'命令的主要功能之一就是設置HADOOP_CLASSPATH,它具有您需要用於Hadoop應用程序的核心依賴關係。 – climbage
良好的修正。我以前沒有用過'hadoop jar'。我可以讓它運行一個簡單的hello world,但是我得到大量的錯誤,比如'java.lang.Exception:2012-02-03 19:11:02 SampleClass8 [WARN]問題在com.osa.mocklogger上找到id 153454612 .MockLogger $ 2.run(MockLogger.java:83)'運行類似於Pradosh的代碼時。不知道問題是否特定於我的羣集配置,或者他是否也是如此。 – RickH
該警告似乎並沒有與Hadoop相關 – climbage