2014-02-06 73 views
1

我正在建立一个客户端,将一些数据放入我的HDFS。由于HDFS位于防火墙后面的集群中,我使用HttpFS作为访问它的代理。当我尝试读取/写入HDFS时,客户端以IOException退出。该消息是No FileSystem for scheme: webhdfs。代码非常简单没有文件系统的计划: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访问正常工作。

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

回答

2

this问题类似,所以我不得不事先做任何FS活动添加以下代码:

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

我不知道为什么,但似乎与Maven构建过程有些不妥。 ..现在它工作。