diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java index f4a9772..59f84a6 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java @@ -2668,9 +2668,10 @@ private static void copyFiles(final HiveConf conf, final FileSystem destFs, Path destPath = new Path(destf, srcP.getName()); if (!needToCopy && !isSrcLocal) { - for (int counter = 1; !destFs.rename(srcP,destPath); counter++) { + for (int counter = 1; destFs.exists(destPath); counter++) { destPath = new Path(destf, name + ("_copy_" + counter) + filetype); } + destFs.rename(srcP,destPath); } else { destPath = mvFile(conf, srcP, destPath, isSrcLocal, srcFs, destFs, name, filetype); }