diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java index a9d0885..5cf2f7e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java @@ -396,8 +396,9 @@ protected synchronized void closeInternal() throws Exception { verifyActiveStatusThread.interrupt(); verifyActiveStatusThread.join(1000); } - - if (!HAUtil.isHAEnabled(getConfig())) { + // close the curator client if it is created by ZKRMStateStore. + if (resourceManager.getCurator() == null + || !HAUtil.isHAEnabled(getConfig())) { IOUtils.closeStream(curatorFramework); } }