当前位置: 首页>>代码示例>>Java>>正文


Java RMNodeLabelsManager.replaceLabelsOnNode方法代码示例

本文整理汇总了Java中org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager.replaceLabelsOnNode方法的典型用法代码示例。如果您正苦于以下问题:Java RMNodeLabelsManager.replaceLabelsOnNode方法的具体用法?Java RMNodeLabelsManager.replaceLabelsOnNode怎么用?Java RMNodeLabelsManager.replaceLabelsOnNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager的用法示例。


在下文中一共展示了RMNodeLabelsManager.replaceLabelsOnNode方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testGetNodeLabels

import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; //导入方法依赖的package包/类
@Test
public void testGetNodeLabels() throws Exception {
  MockRM rm = new MockRM() {
    protected ClientRMService createClientRMService() {
      return new ClientRMService(this.rmContext, scheduler,
          this.rmAppManager, this.applicationACLsManager,
          this.queueACLsManager, this.getRMContext()
              .getRMDelegationTokenSecretManager());
    };
  };
  rm.start();
  RMNodeLabelsManager labelsMgr = rm.getRMContext().getNodeLabelManager();
  labelsMgr.addToCluserNodeLabels(ImmutableSet.of("x", "y"));

  Map<NodeId, Set<String>> map = new HashMap<NodeId, Set<String>>();
  map.put(NodeId.newInstance("host1", 0), ImmutableSet.of("x"));
  map.put(NodeId.newInstance("host2", 0), ImmutableSet.of("y"));
  labelsMgr.replaceLabelsOnNode(map);

  // Create a client.
  Configuration conf = new Configuration();
  YarnRPC rpc = YarnRPC.create(conf);
  InetSocketAddress rmAddress = rm.getClientRMService().getBindAddress();
  LOG.info("Connecting to ResourceManager at " + rmAddress);
  ApplicationClientProtocol client =
      (ApplicationClientProtocol) rpc.getProxy(
          ApplicationClientProtocol.class, rmAddress, conf);

  // Get node labels collection
  GetClusterNodeLabelsResponse response =
      client.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
  Assert.assertTrue(response.getNodeLabels().containsAll(
      Arrays.asList("x", "y")));

  // Get node labels mapping
  GetNodesToLabelsResponse response1 =
      client.getNodeToLabels(GetNodesToLabelsRequest.newInstance());
  Map<NodeId, Set<String>> nodeToLabels = response1.getNodeToLabels();
  Assert.assertTrue(nodeToLabels.keySet().containsAll(
      Arrays.asList(NodeId.newInstance("host1", 0),
          NodeId.newInstance("host2", 0))));
  Assert.assertTrue(nodeToLabels.get(NodeId.newInstance("host1", 0))
      .containsAll(Arrays.asList("x")));
  Assert.assertTrue(nodeToLabels.get(NodeId.newInstance("host2", 0))
      .containsAll(Arrays.asList("y")));
  
  rpc.stopProxy(client, conf);
  rm.close();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:TestClientRMService.java

示例2: testGetLabelsToNodes

import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; //导入方法依赖的package包/类
@Test
public void testGetLabelsToNodes() throws Exception {
  MockRM rm = new MockRM() {
    protected ClientRMService createClientRMService() {
      return new ClientRMService(this.rmContext, scheduler,
          this.rmAppManager, this.applicationACLsManager,
          this.queueACLsManager, this.getRMContext()
              .getRMDelegationTokenSecretManager());
    };
  };
  rm.start();
  RMNodeLabelsManager labelsMgr = rm.getRMContext().getNodeLabelManager();
  labelsMgr.addToCluserNodeLabels(ImmutableSet.of("x", "y", "z"));

  Map<NodeId, Set<String>> map = new HashMap<NodeId, Set<String>>();
  map.put(NodeId.newInstance("host1", 0), ImmutableSet.of("x"));
  map.put(NodeId.newInstance("host1", 1), ImmutableSet.of("z"));
  map.put(NodeId.newInstance("host2", 0), ImmutableSet.of("y"));
  map.put(NodeId.newInstance("host3", 0), ImmutableSet.of("y"));
  map.put(NodeId.newInstance("host3", 1), ImmutableSet.of("z"));
  labelsMgr.replaceLabelsOnNode(map);

  // Create a client.
  Configuration conf = new Configuration();
  YarnRPC rpc = YarnRPC.create(conf);
  InetSocketAddress rmAddress = rm.getClientRMService().getBindAddress();
  LOG.info("Connecting to ResourceManager at " + rmAddress);
  ApplicationClientProtocol client =
      (ApplicationClientProtocol) rpc.getProxy(
          ApplicationClientProtocol.class, rmAddress, conf);

  // Get node labels collection
  GetClusterNodeLabelsResponse response =
      client.getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
  Assert.assertTrue(response.getNodeLabels().containsAll(
      Arrays.asList("x", "y", "z")));

  // Get labels to nodes mapping
  GetLabelsToNodesResponse response1 =
      client.getLabelsToNodes(GetLabelsToNodesRequest.newInstance());
  Map<String, Set<NodeId>> labelsToNodes = response1.getLabelsToNodes();
  Assert.assertTrue(
      labelsToNodes.keySet().containsAll(Arrays.asList("x", "y", "z")));
  Assert.assertTrue(
      labelsToNodes.get("x").containsAll(Arrays.asList(
      NodeId.newInstance("host1", 0))));
  Assert.assertTrue(
      labelsToNodes.get("y").containsAll(Arrays.asList(
      NodeId.newInstance("host2", 0), NodeId.newInstance("host3", 0))));
  Assert.assertTrue(
      labelsToNodes.get("z").containsAll(Arrays.asList(
      NodeId.newInstance("host1", 1), NodeId.newInstance("host3", 1))));

  // Get labels to nodes mapping for specific labels
  Set<String> setlabels =
      new HashSet<String>(Arrays.asList(new String[]{"x", "z"}));
  GetLabelsToNodesResponse response2 =
      client.getLabelsToNodes(GetLabelsToNodesRequest.newInstance(setlabels));
  labelsToNodes = response2.getLabelsToNodes();
  Assert.assertTrue(
      labelsToNodes.keySet().containsAll(Arrays.asList("x", "z")));
  Assert.assertTrue(
      labelsToNodes.get("x").containsAll(Arrays.asList(
      NodeId.newInstance("host1", 0))));
  Assert.assertTrue(
      labelsToNodes.get("z").containsAll(Arrays.asList(
      NodeId.newInstance("host1", 1), NodeId.newInstance("host3", 1))));
  Assert.assertEquals(labelsToNodes.get("y"), null);

  rpc.stopProxy(client, conf);
  rm.close();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:73,代码来源:TestClientRMService.java

示例3: testRMRestartNodeMapping

import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; //导入方法依赖的package包/类
@Test(timeout = 20000)
public void testRMRestartNodeMapping() throws Exception {
  // Initial FS node label store root dir to a random tmp dir
  File nodeLabelFsStoreDir = new File("target",
      this.getClass().getSimpleName() + "-testRMRestartNodeMapping");
  if (nodeLabelFsStoreDir.exists()) {
    FileUtils.deleteDirectory(nodeLabelFsStoreDir);
  }
  nodeLabelFsStoreDir.deleteOnExit();
  String nodeLabelFsStoreDirURI = nodeLabelFsStoreDir.toURI().toString();
  conf.set(YarnConfiguration.FS_NODE_LABELS_STORE_ROOT_DIR,
      nodeLabelFsStoreDirURI);

  MemoryRMStateStore memStore = new MemoryRMStateStore();
  memStore.init(conf);
  conf.setBoolean(YarnConfiguration.NODE_LABELS_ENABLED, true);
  MockRM rm1 = new MockRM(conf, memStore) {
    @Override
    protected RMNodeLabelsManager createNodeLabelManager() {
      RMNodeLabelsManager mgr = new RMNodeLabelsManager();
      mgr.init(getConfig());
      return mgr;
    }
  };
  rm1.init(conf);
  rm1.start();
  RMNodeLabelsManager nodeLabelManager =
      rm1.getRMContext().getNodeLabelManager();

  Set<String> clusterNodeLabels = new HashSet<String>();
  clusterNodeLabels.add("x");
  clusterNodeLabels.add("y");
  nodeLabelManager
      .addToCluserNodeLabelsWithDefaultExclusivity(clusterNodeLabels);
  // Add node Label to Node h1->x
  NodeId n1 = NodeId.newInstance("h1", 1234);
  NodeId n2 = NodeId.newInstance("h1", 1235);
  NodeId nihost = NodeId.newInstance("h1", 0);
  nodeLabelManager.replaceLabelsOnNode(ImmutableMap.of(n1, toSet("x")));
  nodeLabelManager.replaceLabelsOnNode(ImmutableMap.of(n2, toSet("x")));
  nodeLabelManager.replaceLabelsOnNode(ImmutableMap.of(nihost, toSet("y")));
  nodeLabelManager.replaceLabelsOnNode(ImmutableMap.of(n1, toSet("x")));
  MockRM rm2 = null;
  for (int i = 0; i < 2; i++) {
    rm2 = new MockRM(conf, memStore) {
      @Override
      protected RMNodeLabelsManager createNodeLabelManager() {
        RMNodeLabelsManager mgr = new RMNodeLabelsManager();
        mgr.init(getConfig());
        return mgr;
      }
    };
    rm2.init(conf);
    rm2.start();

    nodeLabelManager = rm2.getRMContext().getNodeLabelManager();
    Map<String, Set<NodeId>> labelsToNodes =
        nodeLabelManager.getLabelsToNodes(toSet("x"));
    Assert.assertEquals(1,
        null == labelsToNodes.get("x") ? 0 : labelsToNodes.get("x").size());
  }
  rm1.stop();
  rm2.stop();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:65,代码来源:TestRMRestart.java

示例4: testGetNodeLabels

import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; //导入方法依赖的package包/类
@Test
public void testGetNodeLabels() throws Exception {
  MockRM rm = new MockRM() {
    protected ClientRMService createClientRMService() {
      return new ClientRMService(this.rmContext, scheduler,
          this.rmAppManager, this.applicationACLsManager,
          this.queueACLsManager, this.getRMContext()
              .getRMDelegationTokenSecretManager());
    };
  };
  rm.start();
  NodeLabel labelX = NodeLabel.newInstance("x", false);
  NodeLabel labelY = NodeLabel.newInstance("y");
  RMNodeLabelsManager labelsMgr = rm.getRMContext().getNodeLabelManager();
  labelsMgr.addToCluserNodeLabels(ImmutableSet.of(labelX, labelY));

  NodeId node1 = NodeId.newInstance("host1", 1234);
  NodeId node2 = NodeId.newInstance("host2", 1234);
  Map<NodeId, Set<String>> map = new HashMap<NodeId, Set<String>>();
  map.put(node1, ImmutableSet.of("x"));
  map.put(node2, ImmutableSet.of("y"));
  labelsMgr.replaceLabelsOnNode(map);

  // Create a client.
  Configuration conf = new Configuration();
  YarnRPC rpc = YarnRPC.create(conf);
  InetSocketAddress rmAddress = rm.getClientRMService().getBindAddress();
  LOG.info("Connecting to ResourceManager at " + rmAddress);
  ApplicationClientProtocol client = (ApplicationClientProtocol) rpc
      .getProxy(ApplicationClientProtocol.class, rmAddress, conf);

  // Get node labels collection
  GetClusterNodeLabelsResponse response = client
      .getClusterNodeLabels(GetClusterNodeLabelsRequest.newInstance());
  Assert.assertTrue(response.getNodeLabels().containsAll(
      Arrays.asList(labelX, labelY)));

  // Get node labels mapping
  GetNodesToLabelsResponse response1 = client
      .getNodeToLabels(GetNodesToLabelsRequest.newInstance());
  Map<NodeId, Set<NodeLabel>> nodeToLabels = response1.getNodeToLabels();
  Assert.assertTrue(nodeToLabels.keySet().containsAll(
      Arrays.asList(node1, node2)));
  Assert.assertTrue(nodeToLabels.get(node1)
      .containsAll(Arrays.asList(labelX)));
  Assert.assertTrue(nodeToLabels.get(node2)
      .containsAll(Arrays.asList(labelY)));
  // Verify whether labelX's exclusivity is false
  for (NodeLabel x : nodeToLabels.get(node1)) {
    Assert.assertFalse(x.isExclusive());
  }
  // Verify whether labelY's exclusivity is true
  for (NodeLabel y : nodeToLabels.get(node2)) {
    Assert.assertTrue(y.isExclusive());
  }
  // Below label "x" is not present in the response as exclusivity is true
  Assert.assertFalse(nodeToLabels.get(node1).containsAll(
      Arrays.asList(NodeLabel.newInstance("x"))));

  rpc.stopProxy(client, conf);
  rm.close();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:63,代码来源:TestClientRMService.java


注:本文中的org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager.replaceLabelsOnNode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。