@Override public Map<String, List<ExecutorDetails>> getNeedsSchedulingComponentToExecutors( TopologyDetails topology) { Map<ExecutorDetails, String> executorToComponents = getNeedsSchedulingExecutorToComponents(topology); Map<String, List<ExecutorDetails>> componentToExecutors = new HashMap<>(); for (Map.Entry<ExecutorDetails, String> entry : executorToComponents.entrySet()) { ExecutorDetails executor = entry.getKey(); String component = entry.getValue(); if (!componentToExecutors.containsKey(component)) { componentToExecutors.put(component, new ArrayList<>()); } componentToExecutors.get(component).add(executor); } return componentToExecutors; }
/** * @param topology * @return a component-id -> executors map which needs scheduling in this topology. */ public Map<String, List<ExecutorDetails>> getNeedsSchedulingComponentToExecutors(TopologyDetails topology) { Map<ExecutorDetails, String> executorToComponents = this.getNeedsSchedulingExecutorToComponents(topology); Map<String, List<ExecutorDetails>> componentToExecutors = new HashMap<String, List<ExecutorDetails>>(); for (Map.Entry<ExecutorDetails, String> entry : executorToComponents.entrySet()) { ExecutorDetails executor = entry.getKey(); String component = entry.getValue(); if (!componentToExecutors.containsKey(component)) { componentToExecutors.put(component, new ArrayList<ExecutorDetails>()); } componentToExecutors.get(component).add(executor); } return componentToExecutors; }