2
需要從hdfs集羣外部讀取HDFS。我偶然發現了WebHdfsFileSystem,儘管我明白了這一點,但我無法使其與網絡地址一起工作。例如,只要我使用127.0.0.1或localhost,下面的代碼就可以正常工作。但是現在我使用網絡IP地址192.168。 。,我得到「重試連接到服務器」消息,然後是ConnectException。WebHdfsFileSystem本地ip vs網絡ip hadoop
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.web.WebHdfsFileSystem;
public class ReadHDFSFile {
public static void main(String[] args) {
Path p = new Path("hdfs://127.0.0.1:9000/user/hduser");
WebHdfsFileSystem web = new WebHdfsFileSystem();
try {
Configuration conf = new Configuration();
conf.set("fs.default.name","hdfs://127.0.0.1:9000/");
web.setConf(conf);
Configuration conf1 = web.getConf();
FileSystem fs = FileSystem.get(web.getConf());
System.out.println(fs.exists(p));
} catch (IOException e) {
e.printStackTrace();
}
}
}
我不知道我在這裏錯過了什麼。