YARN-3077. Fixed RM to create zk root path recursively. Contributed by Chun Chen
This commit is contained in:
parent
09ad9a868a
commit
054a947989
@ -449,6 +449,8 @@ Release 2.7.0 - UNRELEASED
|
|||||||
YARN-3099. Capacity Scheduler LeafQueue/ParentQueue should use ResourceUsage
|
YARN-3099. Capacity Scheduler LeafQueue/ParentQueue should use ResourceUsage
|
||||||
to track used-resources-by-label.(Wangda Tan via jianhe)
|
to track used-resources-by-label.(Wangda Tan via jianhe)
|
||||||
|
|
||||||
|
YARN-3077. Fixed RM to create zk root path recursively. (Chun Chen via jianhe)
|
||||||
|
|
||||||
Release 2.6.0 - 2014-11-18
|
Release 2.6.0 - 2014-11-18
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -30,6 +30,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
@ -275,7 +276,7 @@ public class ZKRMStateStore extends RMStateStore {
|
|||||||
createConnection();
|
createConnection();
|
||||||
|
|
||||||
// ensure root dirs exist
|
// ensure root dirs exist
|
||||||
createRootDir(znodeWorkingPath);
|
createRootDirRecursively(znodeWorkingPath);
|
||||||
createRootDir(zkRootNodePath);
|
createRootDir(zkRootNodePath);
|
||||||
if (HAUtil.isHAEnabled(getConfig())){
|
if (HAUtil.isHAEnabled(getConfig())){
|
||||||
fence();
|
fence();
|
||||||
@ -1143,4 +1144,18 @@ public class ZKRMStateStore extends RMStateStore {
|
|||||||
setDataWithRetries(amrmTokenSecretManagerRoot, stateData, -1);
|
setDataWithRetries(amrmTokenSecretManagerRoot, stateData, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility function to ensure that the configured base znode exists.
|
||||||
|
* This recursively creates the znode as well as all of its parents.
|
||||||
|
*/
|
||||||
|
private void createRootDirRecursively(String path) throws Exception {
|
||||||
|
String pathParts[] = path.split("/");
|
||||||
|
Preconditions.checkArgument(pathParts.length >= 1 && pathParts[0].isEmpty(),
|
||||||
|
"Invalid path: %s", path);
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 1; i < pathParts.length; i++) {
|
||||||
|
sb.append("/").append(pathParts[i]);
|
||||||
|
createRootDir(sb.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ public class TestZKRMStateStore extends RMStateStoreTestBase {
|
|||||||
|
|
||||||
public RMStateStore getRMStateStore() throws Exception {
|
public RMStateStore getRMStateStore() throws Exception {
|
||||||
YarnConfiguration conf = new YarnConfiguration();
|
YarnConfiguration conf = new YarnConfiguration();
|
||||||
workingZnode = "/Test";
|
workingZnode = "/jira/issue/3077/rmstore";
|
||||||
conf.set(YarnConfiguration.RM_ZK_ADDRESS, hostPort);
|
conf.set(YarnConfiguration.RM_ZK_ADDRESS, hostPort);
|
||||||
conf.set(YarnConfiguration.ZK_RM_STATE_STORE_PARENT_PATH, workingZnode);
|
conf.set(YarnConfiguration.ZK_RM_STATE_STORE_PARENT_PATH, workingZnode);
|
||||||
this.client = createClient();
|
this.client = createClient();
|
||||||
@ -161,7 +161,7 @@ public class TestZKRMStateStore extends RMStateStoreTestBase {
|
|||||||
@Override
|
@Override
|
||||||
public RMStateStore getRMStateStore() throws Exception {
|
public RMStateStore getRMStateStore() throws Exception {
|
||||||
YarnConfiguration conf = new YarnConfiguration();
|
YarnConfiguration conf = new YarnConfiguration();
|
||||||
workingZnode = "/Test";
|
workingZnode = "/jira/issue/3077/rmstore";
|
||||||
conf.set(YarnConfiguration.RM_ZK_ADDRESS, hostPort);
|
conf.set(YarnConfiguration.RM_ZK_ADDRESS, hostPort);
|
||||||
conf.set(YarnConfiguration.ZK_RM_STATE_STORE_PARENT_PATH, workingZnode);
|
conf.set(YarnConfiguration.ZK_RM_STATE_STORE_PARENT_PATH, workingZnode);
|
||||||
this.client = createClient();
|
this.client = createClient();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user