当前位置: 首页>>代码示例>>Java>>正文


Java IdStreamSpec类代码示例

本文整理汇总了Java中backtype.storm.coordination.CoordinatedBolt.IdStreamSpec的典型用法代码示例。如果您正苦于以下问题:Java IdStreamSpec类的具体用法?Java IdStreamSpec怎么用?Java IdStreamSpec使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


IdStreamSpec类属于backtype.storm.coordination.CoordinatedBolt包,在下文中一共展示了IdStreamSpec类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createTopology

import backtype.storm.coordination.CoordinatedBolt.IdStreamSpec; //导入依赖的package包/类
private StormTopology createTopology(DRPCSpout spout) {
	final String SPOUT_ID = "spout";
	final String PREPARE_ID = "prepare-request";

	TopologyBuilder builder = new TopologyBuilder();
	builder.setSpout(SPOUT_ID, spout);
	builder.setBolt(PREPARE_ID, new PrepareRequest())
			.noneGrouping(SPOUT_ID);
	int i = 0;
	for (; i < _components.size(); i++) {
		Component component = _components.get(i);

		Map<String, SourceArgs> source = new HashMap<String, SourceArgs>();
		if (i == 1) {
			source.put(boltId(i - 1), SourceArgs.single());
		} else if (i >= 2) {
			source.put(boltId(i - 1), SourceArgs.all());
		}
		IdStreamSpec idSpec = null;
		if (i == _components.size() - 1
				&& component.bolt instanceof FinishedCallback) {
			idSpec = IdStreamSpec.makeDetectSpec(PREPARE_ID,
					PrepareRequest.ID_STREAM);
		}
		BoltDeclarer declarer = builder.setBolt(boltId(i),
				new CoordinatedBolt(component.bolt, source, idSpec),
				component.parallelism);

		for (Map conf : component.componentConfs) {
			declarer.addConfigurations(conf);
		}

		if (idSpec != null) {
			declarer.fieldsGrouping(idSpec.getGlobalStreamId()
					.get_componentId(), PrepareRequest.ID_STREAM,
					new Fields("request"));
		}
		if (i == 0 && component.declarations.isEmpty()) {
			declarer.noneGrouping(PREPARE_ID, PrepareRequest.ARGS_STREAM);
		} else {
			String prevId;
			if (i == 0) {
				prevId = PREPARE_ID;
			} else {
				prevId = boltId(i - 1);
			}
			for (InputDeclaration declaration : component.declarations) {
				declaration.declare(prevId, declarer);
			}
		}
		if (i > 0) {
			declarer.directGrouping(boltId(i - 1),
					Constants.COORDINATED_STREAM_ID);
		}
	}

	IRichBolt lastBolt = _components.get(_components.size() - 1).bolt;
	OutputFieldsGetter getter = new OutputFieldsGetter();
	lastBolt.declareOutputFields(getter);
	Map<String, StreamInfo> streams = getter.getFieldsDeclaration();
	if (streams.size() != 1) {
		throw new RuntimeException(
				"Must declare exactly one stream from last bolt in LinearDRPCTopology");
	}
	String outputStream = streams.keySet().iterator().next();
	List<String> fields = streams.get(outputStream).get_output_fields();
	if (fields.size() != 2) {
		throw new RuntimeException(
				"Output stream of last component in LinearDRPCTopology must contain exactly two fields. The first should be the request id, and the second should be the result.");
	}

	builder.setBolt(boltId(i), new JoinResult(PREPARE_ID))
			.fieldsGrouping(boltId(i - 1), outputStream,
					new Fields(fields.get(0)))
			.fieldsGrouping(PREPARE_ID, PrepareRequest.RETURN_STREAM,
					new Fields("request"));
	i++;
	builder.setBolt(boltId(i), new ReturnResults()).noneGrouping(
			boltId(i - 1));
	return builder.createTopology();
}
 
开发者ID:zhangjunfang,项目名称:jstorm-0.9.6.3-,代码行数:82,代码来源:LinearDRPCTopologyBuilder.java

示例2: createTopology

import backtype.storm.coordination.CoordinatedBolt.IdStreamSpec; //导入依赖的package包/类
private StormTopology createTopology(DRPCSpout spout) {
    final String SPOUT_ID = "spout";
    final String PREPARE_ID = "prepare-request";

    TopologyBuilder builder = new TopologyBuilder();
    builder.setSpout(SPOUT_ID, spout);
    builder.setBolt(PREPARE_ID, new PrepareRequest()).noneGrouping(SPOUT_ID);
    int i = 0;
    for (; i < _components.size(); i++) {
        Component component = _components.get(i);

        Map<String, SourceArgs> source = new HashMap<String, SourceArgs>();
        if (i == 1) {
            source.put(boltId(i - 1), SourceArgs.single());
        } else if (i >= 2) {
            source.put(boltId(i - 1), SourceArgs.all());
        }
        IdStreamSpec idSpec = null;
        if (i == _components.size() - 1 && component.bolt instanceof FinishedCallback) {
            idSpec = IdStreamSpec.makeDetectSpec(PREPARE_ID, PrepareRequest.ID_STREAM);
        }
        BoltDeclarer declarer = builder.setBolt(boltId(i), new CoordinatedBolt(component.bolt, source, idSpec), component.parallelism);

        for (Map conf : component.componentConfs) {
            declarer.addConfigurations(conf);
        }

        if (idSpec != null) {
            declarer.fieldsGrouping(idSpec.getGlobalStreamId().get_componentId(), PrepareRequest.ID_STREAM, new Fields("request"));
        }
        if (i == 0 && component.declarations.isEmpty()) {
            declarer.noneGrouping(PREPARE_ID, PrepareRequest.ARGS_STREAM);
        } else {
            String prevId;
            if (i == 0) {
                prevId = PREPARE_ID;
            } else {
                prevId = boltId(i - 1);
            }
            for (InputDeclaration declaration : component.declarations) {
                declaration.declare(prevId, declarer);
            }
        }
        if (i > 0) {
            declarer.directGrouping(boltId(i - 1), Constants.COORDINATED_STREAM_ID);
        }
    }

    IRichBolt lastBolt = _components.get(_components.size() - 1).bolt;
    OutputFieldsGetter getter = new OutputFieldsGetter();
    lastBolt.declareOutputFields(getter);
    Map<String, StreamInfo> streams = getter.getFieldsDeclaration();
    if (streams.size() != 1) {
        throw new RuntimeException("Must declare exactly one stream from last bolt in LinearDRPCTopology");
    }
    String outputStream = streams.keySet().iterator().next();
    List<String> fields = streams.get(outputStream).get_output_fields();
    if (fields.size() != 2) {
        throw new RuntimeException(
                "Output stream of last component in LinearDRPCTopology must contain exactly two fields. The first should be the request id, and the second should be the result.");
    }

    builder.setBolt("JoinResult", new JoinResult(PREPARE_ID)).fieldsGrouping(boltId(i - 1), outputStream, new Fields(fields.get(0)))
            .fieldsGrouping(PREPARE_ID, PrepareRequest.RETURN_STREAM, new Fields("request"));
    i++;
    builder.setBolt("ReturnResults", new ReturnResults()).noneGrouping("JoinResult");
    return builder.createTopology();
}
 
开发者ID:kkllwww007,项目名称:jstrom,代码行数:69,代码来源:LinearDRPCTopologyBuilder.java

示例3: createTopology

import backtype.storm.coordination.CoordinatedBolt.IdStreamSpec; //导入依赖的package包/类
private StormTopology createTopology(DRPCSpout spout) {
    final String SPOUT_ID = "spout";
    final String PREPARE_ID = "prepare-request";
    
    TopologyBuilder builder = new TopologyBuilder();
    builder.setSpout(SPOUT_ID, spout);
    builder.setBolt(PREPARE_ID, new PrepareRequest())
            .noneGrouping(SPOUT_ID);
    int i=0;
    for(; i<_components.size();i++) {
        Component component = _components.get(i);
        
        Map<String, SourceArgs> source = new HashMap<String, SourceArgs>();
        if (i==1) {
            source.put(boltId(i-1), SourceArgs.single());
        } else if (i>=2) {
            source.put(boltId(i-1), SourceArgs.all());
        }
        IdStreamSpec idSpec = null;
        if(i==_components.size()-1 && component.bolt instanceof FinishedCallback) {
            idSpec = IdStreamSpec.makeDetectSpec(PREPARE_ID, PrepareRequest.ID_STREAM);
        }
        BoltDeclarer declarer = builder.setBolt(
                boltId(i),
                new CoordinatedBolt(component.bolt, source, idSpec),
                component.parallelism);
        
        for(Map conf: component.componentConfs) {
            declarer.addConfigurations(conf);
        }
        
        if(idSpec!=null) {
            declarer.fieldsGrouping(idSpec.getGlobalStreamId().get_componentId(), PrepareRequest.ID_STREAM, new Fields("request"));
        }
        if(i==0 && component.declarations.isEmpty()) {
            declarer.noneGrouping(PREPARE_ID, PrepareRequest.ARGS_STREAM);
        } else {
            String prevId;
            if(i==0) {
                prevId = PREPARE_ID;
            } else {
                prevId = boltId(i-1);
            }
            for(InputDeclaration declaration: component.declarations) {
                declaration.declare(prevId, declarer);
            }
        }
        if(i>0) {
            declarer.directGrouping(boltId(i-1), Constants.COORDINATED_STREAM_ID); 
        }
    }
    
    IRichBolt lastBolt = _components.get(_components.size()-1).bolt;
    OutputFieldsGetter getter = new OutputFieldsGetter();
    lastBolt.declareOutputFields(getter);
    Map<String, StreamInfo> streams = getter.getFieldsDeclaration();
    if(streams.size()!=1) {
        throw new RuntimeException("Must declare exactly one stream from last bolt in LinearDRPCTopology");
    }
    String outputStream = streams.keySet().iterator().next();
    List<String> fields = streams.get(outputStream).get_output_fields();
    if(fields.size()!=2) {
        throw new RuntimeException("Output stream of last component in LinearDRPCTopology must contain exactly two fields. The first should be the request id, and the second should be the result.");
    }

    builder.setBolt(boltId(i), new JoinResult(PREPARE_ID))
            .fieldsGrouping(boltId(i-1), outputStream, new Fields(fields.get(0)))
            .fieldsGrouping(PREPARE_ID, PrepareRequest.RETURN_STREAM, new Fields("request"));
    i++;
    builder.setBolt(boltId(i), new ReturnResults())
            .noneGrouping(boltId(i-1));
    return builder.createTopology();
}
 
开发者ID:metamx,项目名称:incubator-storm,代码行数:74,代码来源:LinearDRPCTopologyBuilder.java


注:本文中的backtype.storm.coordination.CoordinatedBolt.IdStreamSpec类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。