Loading escheduler-api/src/main/java/cn/escheduler/api/controller/MonitorController.java +2 −2 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public class MonitorController extends BaseController{ logger.info("login user: {}, query all master", loginUser.getUserName()); try{ logger.info("list master, user:{}", loginUser.getUserName()); Map<String, Object> result = serverService.queryMaster(loginUser); Map<String, Object> result = monitorService.queryMaster(loginUser); return returnDataList(result); }catch (Exception e){ logger.error(LIST_MASTERS_ERROR.getMsg(),e); Loading @@ -86,7 +86,7 @@ public class MonitorController extends BaseController{ public Result listWorker(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { logger.info("login user: {}, query all workers", loginUser.getUserName()); try{ Map<String, Object> result = serverService.queryWorker(loginUser); Map<String, Object> result = monitorService.queryWorker(loginUser); return returnDataList(result); }catch (Exception e){ logger.error(LIST_WORKERS_ERROR.getMsg(),e); Loading escheduler-api/src/main/java/cn/escheduler/api/service/MonitorService.java +39 −2 Original line number Diff line number Diff line Loading @@ -18,13 +18,16 @@ package cn.escheduler.api.service; import cn.escheduler.api.enums.Status; import cn.escheduler.api.utils.Constants; import cn.escheduler.api.utils.ZookeeperMonitorUtils; import cn.escheduler.api.utils.ZookeeperMonitor; import cn.escheduler.dao.MonitorDBDao; import cn.escheduler.dao.model.MasterServer; import cn.escheduler.dao.model.MonitorRecord; import cn.escheduler.dao.model.User; import cn.escheduler.dao.model.ZookeeperRecord; import org.apache.hadoop.mapred.Master; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; Loading Loading @@ -52,6 +55,22 @@ public class MonitorService extends BaseService{ } /** * query master list * * @param loginUser * @return */ public Map<String,Object> queryMaster(User loginUser) { Map<String, Object> result = new HashMap<>(5); List<MasterServer> masterServers = new ZookeeperMonitor().getMasterServers(); result.put(Constants.DATA_LIST, masterServers); putMsg(result,Status.SUCCESS); return result; } /** * query zookeeper state Loading @@ -61,7 +80,7 @@ public class MonitorService extends BaseService{ public Map<String,Object> queryZookeeperState(User loginUser) { Map<String, Object> result = new HashMap<>(5); List<ZookeeperRecord> zookeeperRecordList = ZookeeperMonitorUtils.zookeeperInfoList(); List<ZookeeperRecord> zookeeperRecordList = ZookeeperMonitor.zookeeperInfoList(); result.put(Constants.DATA_LIST, zookeeperRecordList); putMsg(result, Status.SUCCESS); Loading @@ -69,4 +88,22 @@ public class MonitorService extends BaseService{ return result; } /** * query master list * * @param loginUser * @return */ public Map<String,Object> queryWorker(User loginUser) { Map<String, Object> result = new HashMap<>(5); List<MasterServer> workerServers = new ZookeeperMonitor().getWorkerServers(); result.put(Constants.DATA_LIST, workerServers); putMsg(result,Status.SUCCESS); return result; } } escheduler-api/src/main/java/cn/escheduler/api/utils/ZookeeperMonitorUtils.java→escheduler-api/src/main/java/cn/escheduler/api/utils/ZookeeperMonitor.java +37 −2 Original line number Diff line number Diff line package cn.escheduler.api.utils; import cn.escheduler.common.zk.AbstractZKClient; import cn.escheduler.dao.model.MasterServer; import cn.escheduler.dao.model.ZookeeperRecord; import cn.escheduler.server.ResInfo; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -9,14 +11,15 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * monitor zookeeper info */ public class ZookeeperMonitorUtils { public class ZookeeperMonitor extends AbstractZKClient{ private static final Logger LOG = LoggerFactory.getLogger(ZookeeperMonitorUtils.class); private static final Logger LOG = LoggerFactory.getLogger(ZookeeperMonitor.class); private static final String zookeeperList = AbstractZKClient.getZookeeperQuorum(); /** Loading @@ -33,6 +36,38 @@ public class ZookeeperMonitorUtils { return null; } /** * get server list. * @param isMaster * @return */ public List<MasterServer> getServers(boolean isMaster){ List<MasterServer> masterServers = new ArrayList<>(); Map<String, String> masterMap = getServerList(isMaster); String parentPath = isMaster ? getMasterZNodeParentPath() : getWorkerZNodeParentPath(); for(String path : masterMap.keySet()){ MasterServer masterServer = ResInfo.parseHeartbeatForZKInfo(masterMap.get(path)); masterServer.setZkDirectory( parentPath + "/"+ path); masterServers.add(masterServer); } return masterServers; } /** * get master servers * @return */ public List<MasterServer> getMasterServers(){ return getServers(true); } /** * master construct is the same with worker, use the master instead * @return */ public List<MasterServer> getWorkerServers(){ return getServers(false); } private static List<ZookeeperRecord> zookeeperInfoList(String zookeeperServers) { Loading escheduler-api/src/test/java/cn/escheduler/api/utils/ZookeeperMonitorUtilsTest.java 0 → 100644 +29 −0 Original line number Diff line number Diff line package cn.escheduler.api.utils; import cn.escheduler.dao.model.MasterServer; import org.junit.Assert; import org.junit.Test; import java.util.List; public class ZookeeperMonitorUtilsTest { @Test public void testGetMasterLsit(){ ZookeeperMonitor zookeeperMonitor = new ZookeeperMonitor(); List<MasterServer> masterServerList = zookeeperMonitor.getMasterServers(); List<MasterServer> workerServerList = zookeeperMonitor.getWorkerServers(); Assert.assertEquals(masterServerList.size(), 1); Assert.assertEquals(workerServerList.size(), 1); } } No newline at end of file escheduler-common/src/main/java/cn/escheduler/common/queue/TaskQueueZkImpl.java +0 −10 Original line number Diff line number Diff line Loading @@ -417,16 +417,6 @@ public class TaskQueueZkImpl extends AbstractZKClient implements ITaskQueue { } } /** * get zookeeper client of CuratorFramework * @return */ public CuratorFramework getZkClient() { return zkClient; } /** * Get the task queue path * @param key task queue name Loading Loading
escheduler-api/src/main/java/cn/escheduler/api/controller/MonitorController.java +2 −2 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public class MonitorController extends BaseController{ logger.info("login user: {}, query all master", loginUser.getUserName()); try{ logger.info("list master, user:{}", loginUser.getUserName()); Map<String, Object> result = serverService.queryMaster(loginUser); Map<String, Object> result = monitorService.queryMaster(loginUser); return returnDataList(result); }catch (Exception e){ logger.error(LIST_MASTERS_ERROR.getMsg(),e); Loading @@ -86,7 +86,7 @@ public class MonitorController extends BaseController{ public Result listWorker(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { logger.info("login user: {}, query all workers", loginUser.getUserName()); try{ Map<String, Object> result = serverService.queryWorker(loginUser); Map<String, Object> result = monitorService.queryWorker(loginUser); return returnDataList(result); }catch (Exception e){ logger.error(LIST_WORKERS_ERROR.getMsg(),e); Loading
escheduler-api/src/main/java/cn/escheduler/api/service/MonitorService.java +39 −2 Original line number Diff line number Diff line Loading @@ -18,13 +18,16 @@ package cn.escheduler.api.service; import cn.escheduler.api.enums.Status; import cn.escheduler.api.utils.Constants; import cn.escheduler.api.utils.ZookeeperMonitorUtils; import cn.escheduler.api.utils.ZookeeperMonitor; import cn.escheduler.dao.MonitorDBDao; import cn.escheduler.dao.model.MasterServer; import cn.escheduler.dao.model.MonitorRecord; import cn.escheduler.dao.model.User; import cn.escheduler.dao.model.ZookeeperRecord; import org.apache.hadoop.mapred.Master; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; Loading Loading @@ -52,6 +55,22 @@ public class MonitorService extends BaseService{ } /** * query master list * * @param loginUser * @return */ public Map<String,Object> queryMaster(User loginUser) { Map<String, Object> result = new HashMap<>(5); List<MasterServer> masterServers = new ZookeeperMonitor().getMasterServers(); result.put(Constants.DATA_LIST, masterServers); putMsg(result,Status.SUCCESS); return result; } /** * query zookeeper state Loading @@ -61,7 +80,7 @@ public class MonitorService extends BaseService{ public Map<String,Object> queryZookeeperState(User loginUser) { Map<String, Object> result = new HashMap<>(5); List<ZookeeperRecord> zookeeperRecordList = ZookeeperMonitorUtils.zookeeperInfoList(); List<ZookeeperRecord> zookeeperRecordList = ZookeeperMonitor.zookeeperInfoList(); result.put(Constants.DATA_LIST, zookeeperRecordList); putMsg(result, Status.SUCCESS); Loading @@ -69,4 +88,22 @@ public class MonitorService extends BaseService{ return result; } /** * query master list * * @param loginUser * @return */ public Map<String,Object> queryWorker(User loginUser) { Map<String, Object> result = new HashMap<>(5); List<MasterServer> workerServers = new ZookeeperMonitor().getWorkerServers(); result.put(Constants.DATA_LIST, workerServers); putMsg(result,Status.SUCCESS); return result; } }
escheduler-api/src/main/java/cn/escheduler/api/utils/ZookeeperMonitorUtils.java→escheduler-api/src/main/java/cn/escheduler/api/utils/ZookeeperMonitor.java +37 −2 Original line number Diff line number Diff line package cn.escheduler.api.utils; import cn.escheduler.common.zk.AbstractZKClient; import cn.escheduler.dao.model.MasterServer; import cn.escheduler.dao.model.ZookeeperRecord; import cn.escheduler.server.ResInfo; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -9,14 +11,15 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * monitor zookeeper info */ public class ZookeeperMonitorUtils { public class ZookeeperMonitor extends AbstractZKClient{ private static final Logger LOG = LoggerFactory.getLogger(ZookeeperMonitorUtils.class); private static final Logger LOG = LoggerFactory.getLogger(ZookeeperMonitor.class); private static final String zookeeperList = AbstractZKClient.getZookeeperQuorum(); /** Loading @@ -33,6 +36,38 @@ public class ZookeeperMonitorUtils { return null; } /** * get server list. * @param isMaster * @return */ public List<MasterServer> getServers(boolean isMaster){ List<MasterServer> masterServers = new ArrayList<>(); Map<String, String> masterMap = getServerList(isMaster); String parentPath = isMaster ? getMasterZNodeParentPath() : getWorkerZNodeParentPath(); for(String path : masterMap.keySet()){ MasterServer masterServer = ResInfo.parseHeartbeatForZKInfo(masterMap.get(path)); masterServer.setZkDirectory( parentPath + "/"+ path); masterServers.add(masterServer); } return masterServers; } /** * get master servers * @return */ public List<MasterServer> getMasterServers(){ return getServers(true); } /** * master construct is the same with worker, use the master instead * @return */ public List<MasterServer> getWorkerServers(){ return getServers(false); } private static List<ZookeeperRecord> zookeeperInfoList(String zookeeperServers) { Loading
escheduler-api/src/test/java/cn/escheduler/api/utils/ZookeeperMonitorUtilsTest.java 0 → 100644 +29 −0 Original line number Diff line number Diff line package cn.escheduler.api.utils; import cn.escheduler.dao.model.MasterServer; import org.junit.Assert; import org.junit.Test; import java.util.List; public class ZookeeperMonitorUtilsTest { @Test public void testGetMasterLsit(){ ZookeeperMonitor zookeeperMonitor = new ZookeeperMonitor(); List<MasterServer> masterServerList = zookeeperMonitor.getMasterServers(); List<MasterServer> workerServerList = zookeeperMonitor.getWorkerServers(); Assert.assertEquals(masterServerList.size(), 1); Assert.assertEquals(workerServerList.size(), 1); } } No newline at end of file
escheduler-common/src/main/java/cn/escheduler/common/queue/TaskQueueZkImpl.java +0 −10 Original line number Diff line number Diff line Loading @@ -417,16 +417,6 @@ public class TaskQueueZkImpl extends AbstractZKClient implements ITaskQueue { } } /** * get zookeeper client of CuratorFramework * @return */ public CuratorFramework getZkClient() { return zkClient; } /** * Get the task queue path * @param key task queue name Loading