我正在尝试执行一个简单的Hadoop程序来读取文件的内容并将其打印到控制台上。 我正在关注Hadoop权威指南:URLCat示例
我收到格式错误的网址例外:没有协议
当我使用-cat与hdfs://localhost/user/training/test.txt时,我正在打印出内容,但是当我在执行jar时使用相同的路径时,我得到了提到的异常。
我添加了静态块,它设置了URLStreamHandlerFactory
已编辑:
我的计划:
import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
// vv URLCat
public class URLCat {
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);
}
}
}