2012-12-10 83 views
0

看來,如果路徑包含嵌套目錄例如a/b/c/然後調用create上創建路徑中的所有這些目錄...HDFS是否在請求的路徑上創建所有目錄?

fileSystem.create(new Path(path), true); 

..類似於到File.mkdirs

這是HDFS的記錄功能的調用?

+0

FWIW,位於http://hadoop.apache.org/docs/hdfs/r0.22.0/api/org/apache/hadoop/hdfs/DFSClient.html的API表示父目錄的創建默認爲true。承認,這與從DistributedFileSystem調用的確切調用不同。 – cmonkey

回答

1

FileSystem API的create(…)方法的默認行爲(在HDFS實現中使用時,特別是)將發送create-parent標誌到服務器,請求將被自動生成的父母,如果他們不存在。

由於FileSystem實現的每個平臺的行爲都不相同,因此預計對於本地文件系統(file://路徑)創建調用而言並非如此。

在Hadoop 2.x及更高版本的FileContext的create API中提供了切換功能,該功能允許您提供Options.CreateOptions.donotCreateParent()選項以禁止或控制此行爲。

相關問題