You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2020/04/29 18:30:12 UTC
[hive] branch master updated: HIVE-23261 : Check whether encryption
is enabled in the cluster before moving files (Ramesh Kumar via Rajesh
Balamohan)
This is an automated email from the ASF dual-hosted git repository.
hashutosh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new e13486b HIVE-23261 : Check whether encryption is enabled in the cluster before moving files (Ramesh Kumar via Rajesh Balamohan)
e13486b is described below
commit e13486be06a5160b41a5310388dd9c704361bead
Author: RAMESH KUMAR THANGARAJAN <ra...@gmail.com>
AuthorDate: Wed Apr 29 11:29:28 2020 -0700
HIVE-23261 : Check whether encryption is enabled in the cluster before moving files (Ramesh Kumar via Rajesh Balamohan)
Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
---
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
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 8d194c3..7bb90d3 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
@@ -89,6 +89,7 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.fs.permission.FsAction;
+import org.apache.hadoop.hdfs.DFSUtilClient;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.hive.common.FileUtils;
import org.apache.hadoop.hive.common.HiveStatsUtils;
@@ -4121,7 +4122,7 @@ private void constructOneLBLocationMap(FileStatus fSta,
Arrays.sort(files);
for (final FileStatus srcFile : files) {
final Path srcP = srcFile.getPath();
- final boolean needToCopy = needToCopy(srcP, destf, srcFs, destFs, configuredOwner, isManaged);
+ final boolean needToCopy = needToCopy(conf, srcP, destf, srcFs, destFs, configuredOwner, isManaged);
final boolean isRenameAllowed = !needToCopy && !isSrcLocal;
@@ -4436,7 +4437,7 @@ private void constructOneLBLocationMap(FileStatus fSta,
destFs.copyFromLocalFile(srcf, destf);
return true;
} else {
- if (needToCopy(srcf, destf, srcFs, destFs, configuredOwner, isManaged)) {
+ if (needToCopy(conf, srcf, destf, srcFs, destFs, configuredOwner, isManaged)) {
//copy if across file system or encryption zones.
LOG.debug("Copying source " + srcf + " to " + destf + " because HDFS encryption zones are different.");
return FileUtils.copy(srcf.getFileSystem(conf), srcf, destf.getFileSystem(conf), destf,
@@ -4561,7 +4562,7 @@ private void constructOneLBLocationMap(FileStatus fSta,
* TODO- consider if need to do this for different file authority.
* @throws HiveException
*/
- static private boolean needToCopy(Path srcf, Path destf, FileSystem srcFs,
+ static private boolean needToCopy(final HiveConf conf, Path srcf, Path destf, FileSystem srcFs,
FileSystem destFs, String configuredOwner, boolean isManaged) throws HiveException {
//Check if different FileSystems
if (!FileUtils.equalsFileSystem(srcFs, destFs)) {
@@ -4602,6 +4603,10 @@ private void constructOneLBLocationMap(FileStatus fSta,
}
}
+ // if Encryption not enabled, no copy needed
+ if (!DFSUtilClient.isHDFSEncryptionEnabled(conf)) {
+ return false;
+ }
//Check if different encryption zones
HadoopShims.HdfsEncryptionShim srcHdfsEncryptionShim = SessionState.get().getHdfsEncryptionShim(srcFs);
HadoopShims.HdfsEncryptionShim destHdfsEncryptionShim = SessionState.get().getHdfsEncryptionShim(destFs);