我是一個有hadoop和東西的業餘愛好者。現在,我試圖訪問hadoop集羣(HDFS)並從客戶端eclipse中檢索文件列表。在hadoop java客戶端上設置所需的配置後,我可以執行以下操作。來自HDFS羣集的ListFiles
我可以執行copyFromLocalFile,copyToLocalFile操作從客戶端訪問HDFS。 這就是我所面臨的。當我給listFiles()方法,我得到
[email protected]
[email protected]
MainMethod
Properties props = new Properties();
props.setProperty("fs.defaultFS", "hdfs://<IPOFCLUSTER>:8020");
props.setProperty("mapreduce.jobtracker.address", "<IPOFCLUSTER>:8032");
props.setProperty("yarn.resourcemanager.address", "<IPOFCLUSTER>:8032");
props.setProperty("mapreduce.framework.name", "yarn");
FileSystem fs = FileSystem.get(toConfiguration(props)); // Setting up the required configurations
Path p4 = new Path("/user/myusername/inputjson1/");
RemoteIterator<LocatedFileStatus> ritr = fs.listFiles(p4, true);
while(ritr.hasNext())
{
System.out.println(ritr.next().toString());
}
我也試過FileContext,最終只獲得了時間filestatus對象的字符串或東西。是否有可能在我迭代到遠程hdfs目錄時使用文件名,是否有一個名爲getPath()的方法,這是我們使用hadoop API檢索文件名的完整路徑的唯一方法,還是有其他方法以便我可以檢索指定目錄路徑中的文件的名稱,請幫助我完成此操作,謝謝。
實際上:路徑P = ritr.next()的getPath(); – 2015-02-07 01:23:41
@SabaJamalian好抓,固定。 – 2015-02-07 06:15:45