@Test public void testUpdateShuffleNode() throws Exception { JobId jobId = JobId.newJobId(createTestAppId(), 123456); DragonZooKeeper.NodeData node = new DragonZooKeeper.NodeData(); node.nodeId = createTestNodeId(); node.taskId = TaskId.newTaskId(jobId, 34565, TaskType.MAP); dragonZK.createShufflePath(jobId); dragonZK.createShuffleNode(jobId, newArrayList(node)); node.nodeId.setHost("NewServerHost"); dragonZK.updateShuffleNode(jobId, newArrayList(node)); Stat stat = zkClient .checkExists() .forPath( "/dragon/job_458495849584_89894985_123456/shuffle/task_458495849584_89894985_123456_m_34565"); assertNotNull(stat); byte[] data = zkClient .getData() .forPath( "/dragon/job_458495849584_89894985_123456/shuffle/task_458495849584_89894985_123456_m_34565"); assertEquals("NewServerHost:2345", new String(data)); }
@Test public void testCreateShufflePath() throws Exception { ApplicationId appId = createTestAppId(); JobId jobId = JobId.newJobId(appId, 123456); dragonZK.createShufflePath(jobId); Stat stat = zkClient.checkExists().forPath("/dragon/job_458495849584_89894985_123456/shuffle"); assertNotNull(stat); }
@Test public void testGetShuffleNodeByTaskId() throws Exception { JobId jobId = JobId.newJobId(createTestAppId(), 123456); TaskId taskId = TaskId.newTaskId(jobId, 34565, TaskType.MAP); DragonZooKeeper.NodeData node = new DragonZooKeeper.NodeData(); node.nodeId = createTestNodeId(); node.taskId = taskId; if (zkClient.checkExists().forPath("/dragon/job_458495849584_89894985_123456/shuffle") == null) { dragonZK.createShufflePath(jobId); } PathChildrenCache shuffleNodeCache = new PathChildrenCache(zkClient, dragonZK.getShufflePath(jobId), true); dragonZK.setShuffleNodeCache(shuffleNodeCache); dragonZK.createShuffleNode(jobId, newArrayList(node)); Thread.sleep(1000); NodeId nodeId = dragonZK.getShuffleNodeByTaskId(jobId, taskId); assertNotNull(nodeId); assertEquals(node.nodeId, nodeId); }