You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simulating more failure conditions.
Still more to explore there, in particular "what if delete of rename target fails"
Change-Id: Idb84f9c17a195702e6a2345b095f41e72865dd5b
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/ManifestCommitterConstants.java
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -146,7 +146,7 @@ public final class ManifestCommitterConstants {
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/impl/ManifestStoreOperations.java
+2-3Lines changed: 2 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -113,16 +113,15 @@ public boolean deleteFile(Path path)
113
113
}
114
114
115
115
/**
116
-
* Acquire the delete capacity then call {@code FileSystem#delete(Path, true)}
117
-
* or equivalent.
116
+
* Call {@code FileSystem#delete(Path, true)} or equivalent.
118
117
* <p>
119
118
* If it returns without an error: there is nothing at
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/impl/ManifestStoreOperationsThroughFileSystem.java
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -109,7 +109,7 @@ public boolean delete(Path path, boolean recursive)
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/stages/AbortTaskStage.java
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/stages/AbstractJobOrTaskStage.java
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/stages/CleanupJobStage.java
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -174,9 +174,9 @@ protected Result executeStage(
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/stages/CommitTaskStage.java
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -111,5 +111,9 @@ public TaskManifest getTaskManifest() {
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/site/markdown/manifest_committer.md
+19-4Lines changed: 19 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -190,7 +190,7 @@ Here are the main configuration options of the committer.
190
190
|`mapreduce.manifest.committer.io.threads`| Thread count for parallel operations |`64`|
191
191
|`mapreduce.manifest.committer.summary.report.directory`| directory to save reports. |`""`|
192
192
|`mapreduce.manifest.committer.cleanup.parallel.delete`| Delete temporary directories in parallel |`true`|
193
-
|`mapreduce.manifest.committer.cleanup.parallel.delete.base.first`| Attempt to delete the base directory before parallel task attempts |`true`|
193
+
|`mapreduce.manifest.committer.cleanup.parallel.delete.base.first`| Attempt to delete the base directory before parallel task attempts |`false`|
194
194
|`mapreduce.fileoutputcommitter.cleanup.skipped`| Skip cleanup of `_temporary` directory|`false`|
195
195
|`mapreduce.fileoutputcommitter.cleanup-failures.ignored`| Ignore errors during cleanup |`false`|
196
196
|`mapreduce.fileoutputcommitter.marksuccessfuljobs`| Create a `_SUCCESS` marker file on successful completion. (and delete any existing one in job setup) |`true`|
@@ -423,7 +423,7 @@ may surface in cloud storage.
423
423
|`mapreduce.fileoutputcommitter.cleanup.skipped`| Skip cleanup of `_temporary` directory|`false`|
424
424
|`mapreduce.fileoutputcommitter.cleanup-failures.ignored`| Ignore errors during cleanup |`false`|
425
425
|`mapreduce.manifest.committer.cleanup.parallel.delete`| Delete task attempt directories in parallel |`true`|
426
-
|`mapreduce.manifest.committer.cleanup.parallel.delete.base.first`| Attempt to delete the base directory before parallel task attempts |`true`|
426
+
|`mapreduce.manifest.committer.cleanup.parallel.delete.base.first`| Attempt to delete the base directory before parallel task attempts |`false`|
427
427
428
428
The algorithm is:
429
429
@@ -444,7 +444,15 @@ if caught-exception and not "mapreduce.fileoutputcommitter.cleanup-failures.igno
444
444
It's a bit complicated, but the goal is to perform a fast/scalable delete and
445
445
throw a meaningful exception if that didn't work.
446
446
447
-
For ABFS the default settings should normally be left alone.
447
+
For ABFS set `mapreduce.manifest.committer.cleanup.parallel.delete.base.first` to `true`
448
+
which should normally result in less network IO and a faster cleanup.
Copy file name to clipboardExpand all lines: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/lib/output/committer/manifest/AbstractManifestCommitterTest.java
+7Lines changed: 7 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -167,6 +167,12 @@ public abstract class AbstractManifestCommitterTest
167
167
168
168
privatestaticfinalintMAX_LEN = 64_000;
169
169
170
+
/**
171
+
* How many attempts to save manifests before giving up.
172
+
* Kept small to reduce sleep times and network delays.
0 commit comments