Package com.alimama.mdrill.topology.assignment

Source Code of com.alimama.mdrill.topology.assignment.TaskNeedAssign

package com.alimama.mdrill.topology.assignment;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

import com.alimama.mdrill.topology.MdrillTaskAssignment;
import com.alipay.bluewhale.core.task.common.TaskInfo;
import com.alipay.bluewhale.core.utils.StormUtils;

public class TaskNeedAssign {

  public HashSet<Integer> msTask = new HashSet<Integer>();
  public HashMap<Integer,HashSet<Integer>> shardTask = new HashMap<Integer,HashSet<Integer>>();
  public HashMap<Integer,HashSet<Integer>> realtimeTask = new HashMap<Integer,HashSet<Integer>>();

  public HashSet<Integer> otherTask = new HashSet<Integer>();
 
 
  public void setSpecialTask(Set<Integer> reassignIds,MdrillTaskAssignment assen) {
   
    for(int i=0;i<assen.replication;i++)
    {
      shardTask.put(i, new HashSet<Integer>());
      realtimeTask.put(i, new HashSet<Integer>());
    }
   
    for (Integer tid : reassignIds) {
      TaskInfo info = assen.zkCluster.task_info(assen.topologyId, tid);
      if (info == null) {
        this.otherTask.add(tid);
      }
      String commnetId=info.getComponentId();
      Integer group=0;
      String[] cols=commnetId.split("@");
      if(cols.length>=2)
      {
        group=StormUtils.parseInt(cols[1]);
      }
      if (commnetId.indexOf(assen.shard_name) >= 0) {
        this.shardTask.get(group).add(tid);
      } else if (commnetId.indexOf(assen.ms_name) >= 0) {
        this.msTask.add(tid);
      } else if (commnetId.indexOf(assen.realtime_name) >= 0) {
        this.realtimeTask.get(group).add(tid);
      } else {
        this.otherTask.add(tid);
      }
    }
  }

}
TOP

Related Classes of com.alimama.mdrill.topology.assignment.TaskNeedAssign

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.