Unverified Commit ca701bd0 authored by easyscheduler's avatar easyscheduler Committed by GitHub
Browse files

Merge pull request #550 from lenboo/dev-1.1.0

get master/worker informations from zookeeper
parents 16542210 fd89dff3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
@@ -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);
+39 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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);
@@ -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;
  }
}
+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;
@@ -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();

	/**
@@ -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) {

+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
+0 −10
Original line number Diff line number Diff line
@@ -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