0
我想通過Java遠程訪問Hadoop文件系統,但每次運行以下代碼時它都只顯示本地文件系統。如何使用Java遠程創建Hadoop文件系統的實例?
我已經通過堆棧溢出的許多解決方案,但似乎沒有任何工作。
這裏是一個當前的嘗試:
代碼
Configuration obj = new Configuration();
obj.set("fs.defaultFS", "hdfs://localhost:8020");
obj.addResource(new Path("/etc/hadoop/conf/core-site.xml"));
obj.addResource(new Path("/etc/hadoop/conf/hdfs-site.xml"));
URI uri = new URI("hdfs://localhost:8020/");
Path path =new Path("/Myfiles/wc.txt");
FileSystem fs = FileSystem.get(obj);
System.out.println(fs.getHomeDirectory());
if(fs instanceof DistributedFileSystem) {
System.out.println("HDFS is the underlying filesystem");
} else {
System.out.println("Other type of file system "+fs.getClass());
}
FSDataInputStream fsDataInputStream = fs.open(path);
InputStreamReader inputStreamReader = new InputStreamReader(fsDataInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
bufferedReader .close();
我在做什麼錯誤?
發佈你有什麼代碼和你看到的錯誤。 –
確保在應用程序的類路徑中存在適當的'core-site.xml','hdfs-site.xml'文件。這些文件應該包含您的Hadoop集羣的有效配置。 – Zyoma
我試過了。你可以在代碼中看到我上面已經發布的代碼。 –