2

我正在构建一个将一些数据推送到我的 HDFS 的客户端。因为 HDFS 在防火墙后面的集群内,所以我使用 HttpFS 作为代理来访问它。IOException当我尝试读取/写入 HDFS 时,客户端退出。消息是No FileSystem for scheme: webhdfs。代码很简单

String hdfsURI = "webhdfs://myhttpfshost:14000/";
Configuration configuration = new Configuration();
FileSystem hdfs = FileSystem.get(new URI(hdfsURI), configuration);

它在最后一行崩溃。我正在使用 Maven 3.0.4 构建并将 Hadoop-Client 依赖项 2.2.0 添加到我的项目中。通过curl命令行访问可以正常工作。

任何想法为什么这可能会失败?

4

1 回答 1

4

与 SO 上的这个问题类似,我必须在执行任何 FS 活动之前添加以下代码:

configuration.set("fs.webhdfs.impl", org.apache.hadoop.hdfs.web.WebHdfsFileSystem.class.getName());

我不知道为什么,但 Maven 构建过程似乎有问题......现在它可以工作了。

于 2014-02-06T09:12:55.613 回答