Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java (revision 1614288) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java (working copy) @@ -353,6 +353,9 @@ public static final String RM_ZK_ACL = RM_ZK_PREFIX + "acl"; public static final String DEFAULT_RM_ZK_ACL = "world:anyone:rwcda"; + + public static final String RM_ZK_JUTEMAXBUFFER_BYTES = RM_ZK_PREFIX + "jutemaxbuffer-bytes"; + public static final int DEFAULT_RM_ZK_JUTEMAXBUFFER_BYTES = 1*1024*1024; public static final String RM_ZK_AUTH = RM_ZK_PREFIX + "auth"; Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml (revision 1614288) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml (working copy) @@ -357,6 +357,15 @@ yarn.resourcemanager.zk-timeout-ms 10000 + + + Java system property, jute.maxbuffer, to be used for ZooKeeper + servers and clients. It specifies the maximum size of the data that can be stored + in a znode. The default is 1M. If this option is changed, the system property must + be set on all servers and clients otherwise problems will arise. + yarn.resourcemanager.zk-jutemaxbuffer-bytes + 1048576 + ACL's to be used for ZooKeeper znodes. Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java (revision 1614288) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/ZKRMStateStore.java (working copy) @@ -98,6 +98,7 @@ private String zkHostPort = null; private int zkSessionTimeout; + private int zkJuteMaxBuffer; @VisibleForTesting long zkRetryInterval; @@ -214,6 +215,8 @@ zkSessionTimeout = conf.getInt(YarnConfiguration.RM_ZK_TIMEOUT_MS, YarnConfiguration.DEFAULT_RM_ZK_TIMEOUT_MS); + zkJuteMaxBuffer = conf.getInt(YarnConfiguration.RM_ZK_JUTEMAXBUFFER_BYTES, + YarnConfiguration.DEFAULT_RM_ZK_JUTEMAXBUFFER_BYTES); if (HAUtil.isHAEnabled(conf)) { zkRetryInterval = zkSessionTimeout / numRetries; @@ -1133,6 +1136,7 @@ @Unstable protected synchronized ZooKeeper getNewZooKeeper() throws IOException, InterruptedException { + System.setProperty("jute.maxbuffer",Integer.toString(zkJuteMaxBuffer)); ZooKeeper zk = new ZooKeeper(zkHostPort, zkSessionTimeout, null); zk.register(new ForwardingWatcher()); return zk;