HDFS-15916. DistCp: Backward compatibility: Distcp fails from Hadoop 3 to Hadoop 2 for snapshotdiff. (#2863). Contributed by Ayush Saxena.
Signed-off-by: Wei-Chiu Chuang <weichiu@apache.org>
This commit is contained in:
parent
4c567fcff7
commit
c6539e3289
@ -19,6 +19,7 @@
|
|||||||
package org.apache.hadoop.hdfs;
|
package org.apache.hadoop.hdfs;
|
||||||
|
|
||||||
|
|
||||||
|
import org.apache.hadoop.ipc.RpcNoSuchMethodException;
|
||||||
import org.apache.hadoop.security.AccessControlException;
|
import org.apache.hadoop.security.AccessControlException;
|
||||||
import org.apache.hadoop.thirdparty.com.google.common.annotations.VisibleForTesting;
|
import org.apache.hadoop.thirdparty.com.google.common.annotations.VisibleForTesting;
|
||||||
import org.apache.hadoop.thirdparty.com.google.common.base.Preconditions;
|
import org.apache.hadoop.thirdparty.com.google.common.base.Preconditions;
|
||||||
@ -2388,8 +2389,15 @@ private SnapshotDiffReport getSnapshotDiffReportInternal(
|
|||||||
List<DiffReportListingEntry> deletedList = new ChunkedArrayList<>();
|
List<DiffReportListingEntry> deletedList = new ChunkedArrayList<>();
|
||||||
SnapshotDiffReportListing report;
|
SnapshotDiffReportListing report;
|
||||||
do {
|
do {
|
||||||
|
try {
|
||||||
report = dfs.getSnapshotDiffReportListing(snapshotDir, fromSnapshot,
|
report = dfs.getSnapshotDiffReportListing(snapshotDir, fromSnapshot,
|
||||||
toSnapshot, startPath, index);
|
toSnapshot, startPath, index);
|
||||||
|
} catch (RpcNoSuchMethodException e) {
|
||||||
|
// In case the server doesn't support getSnapshotDiffReportListing,
|
||||||
|
// fallback to getSnapshotDiffReport.
|
||||||
|
LOG.warn("Falling back to getSnapshotDiffReport {}", e.getMessage());
|
||||||
|
return dfs.getSnapshotDiffReport(snapshotDir, fromSnapshot, toSnapshot);
|
||||||
|
}
|
||||||
startPath = report.getLastPath();
|
startPath = report.getLastPath();
|
||||||
index = report.getLastIndex();
|
index = report.getLastIndex();
|
||||||
modifiedList.addAll(report.getModifyList());
|
modifiedList.addAll(report.getModifyList());
|
||||||
|
Loading…
Reference in New Issue
Block a user