diff --git metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java index f7b2ed7..829ea85 100644 --- metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java +++ metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java @@ -1848,7 +1848,15 @@ private void checkTrashPurgeCombination(Path pathToData, String objectName, bool // nothing to do } - if (trashEnabled) { + boolean isTrashSupported = true; // whether Trash Support (HDFS-8831) is available + try { + FileSystem.class.getDeclaredField("TRASH_PREFIX"); + } catch (NoSuchFieldException e) { + isTrashSupported = false; + } + // HDFS-8831 introduced trash support for deletion in HDFS encryption zone. With that we no + // longer need the following check below (Hadoop 2.8.0 onwards) + if (trashEnabled && !isTrashSupported) { try { HadoopShims.HdfsEncryptionShim shim = ShimLoader.getHadoopShims().createHdfsEncryptionShim(FileSystem.get(hiveConf), hiveConf);