Пример #1
0
 public static ComponentCommon getComponentCommon(StormTopology topology, String id) {
   if (topology.get_spouts().containsKey(id)) {
     return topology.get_spouts().get(id).get_common();
   }
   if (topology.get_bolts().containsKey(id)) {
     return topology.get_bolts().get(id).get_common();
   }
   if (topology.get_state_spouts().containsKey(id)) {
     return topology.get_state_spouts().get(id).get_common();
   }
   throw new IllegalArgumentException("Could not find component with id " + id);
 }
Пример #2
0
    public IdDictionary(StormTopology topology) {
      List<String> componentNames = new ArrayList<String>(topology.get_spouts().keySet());
      componentNames.addAll(topology.get_bolts().keySet());
      componentNames.addAll(topology.get_state_spouts().keySet());

      for (String name : componentNames) {
        ComponentCommon common = Utils.getComponentCommon(topology, name);
        List<String> streams = new ArrayList<String>(common.get_streams().keySet());
        streamNametoId.put(name, idify(streams));
        streamIdToName.put(name, Utils.reverseMap(streamNametoId.get(name)));
      }
    }
Пример #3
0
  /**
   * generate a taskid(Integer) for every task
   *
   * @param conf
   * @param topologyid
   * @return Map<Integer, String>: from taskid to componentid
   * @throws IOException
   * @throws InvalidTopologyException
   */
  public Map<Integer, String> mkTaskComponentAssignments(
      Map<Object, Object> conf, String topologyid) throws IOException, InvalidTopologyException {

    // @@@ here exist a little problem,
    // we can directly pass stormConf from Submit method
    Map<Object, Object> stormConf = StormConfig.read_nimbus_topology_conf(conf, topologyid);

    StormTopology stopology = StormConfig.read_nimbus_topology_code(conf, topologyid);

    // use TreeMap to make task as sequence
    Map<Integer, String> rtn = new TreeMap<Integer, String>();

    StormTopology topology = Common.system_topology(stormConf, stopology);

    Integer count = 0;
    count = mkTaskMaker(stormConf, topology.get_bolts(), rtn, count);
    count = mkTaskMaker(stormConf, topology.get_spouts(), rtn, count);
    count = mkTaskMaker(stormConf, topology.get_state_spouts(), rtn, count);

    return rtn;
  }