2014-02-06 69 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構建過程有些不妥。 ..現在它工作。