Storm1.1.0<组件的并行度和组件的实例个数的关系>
来源:互联网 发布:淘宝买家账号导出 编辑:程序博客网 时间:2024/06/01 08:08
软件环境:
Apache-storm-1.1.0
一个组件类的并行度与其实例化的个数有什么关系?来探索一下,
首先我配置控制台的输出,只输出日志的WARN级别以上和标准输出的信息http://blog.csdn.net/gpwner/article/details/74170806
然后利用storm-starter的例子:
import java.util.Map;import org.apache.storm.Config;import org.apache.storm.LocalCluster;import org.apache.storm.StormSubmitter;import org.apache.storm.task.OutputCollector;import org.apache.storm.task.TopologyContext;import org.apache.storm.testing.TestWordSpout;import org.apache.storm.topology.BasicOutputCollector;import org.apache.storm.topology.OutputFieldsDeclarer;import org.apache.storm.topology.TopologyBuilder;import org.apache.storm.topology.base.BaseBasicBolt;import org.apache.storm.topology.base.BaseRichBolt;import org.apache.storm.tuple.Fields;import org.apache.storm.tuple.Tuple;import org.apache.storm.tuple.Values;import org.apache.storm.utils.Utils;/** * This is a basic example of a Storm topology. */public class ExclamationTopology { public static class PrinterBolt extends BaseBasicBolt { @Override public void execute(Tuple tuple, BasicOutputCollector collector) { System.out.println(tuple); } @Override public void declareOutputFields(OutputFieldsDeclarer ofd) { } } public static class ExclamationBolt extends BaseRichBolt { OutputCollector _collector; public ExclamationBolt() { } @Override public void prepare(Map conf, TopologyContext context, OutputCollector collector) { _collector = collector; System.out.println("OBJECT:" + this + " hashcode:" + this.hashCode()); } @Override public void execute(Tuple tuple) { _collector.emit(tuple, new Values(tuple.getString(0) + "!!!")); _collector.ack(tuple); } @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(new Fields("word")); } } public static void main(String[] args) throws Exception { TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("word", new TestWordSpout(), 1); builder.setBolt("exclaim1", new ExclamationBolt(), 10).shuffleGrouping("word"); builder.setBolt("exclaim2", new PrinterBolt(), 1).shuffleGrouping("exclaim1"); Config conf = new Config(); conf.setDebug(true); if (args != null && args.length > 0) { conf.setNumWorkers(3); StormSubmitter.submitTopology(args[0], conf, builder.createTopology()); } else { LocalCluster cluster = new LocalCluster(); cluster.submitTopology("test", conf, builder.createTopology()); Utils.sleep(1000000); cluster.killTopology("test"); cluster.shutdown(); } }}
一个类的实例的哈希码是各不相同的,因此可以通过打印对象的哈希码来看看组件类Bolt的并行度与其实例个数的关系:
控制台信息:
OBJECT:neu.ExclamationTopology$ExclamationBolt@893f20f hashcode:143913487OBJECT:neu.ExclamationTopology$ExclamationBolt@174efa3 hashcode:24440739OBJECT:neu.ExclamationTopology$ExclamationBolt@1acd5eb9 hashcode:449666745OBJECT:neu.ExclamationTopology$ExclamationBolt@2ba329fb hashcode:732113403OBJECT:neu.ExclamationTopology$ExclamationBolt@4cac74ad hashcode:1286370477OBJECT:neu.ExclamationTopology$ExclamationBolt@74cf9261 hashcode:1959760481OBJECT:neu.ExclamationTopology$ExclamationBolt@741325f7 hashcode:1947411959OBJECT:neu.ExclamationTopology$ExclamationBolt@655f6a1f hashcode:1700751903OBJECT:neu.ExclamationTopology$ExclamationBolt@ddafc5a hashcode:232455258OBJECT:neu.ExclamationTopology$ExclamationBolt@1b23229e hashcode:455287454
TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("word", new TestWordSpout(), 1); builder.setBolt("exclaim1", new ExclamationBolt(), 10).shuffleGrouping("word"); builder.setBolt("exclaim2", new PrinterBolt(), 1).shuffleGrouping("exclaim1");
我的拓扑设置的Bolt的并行度为10,从结果有可以看出这个Bolt类产生了十个不同的对象
阅读全文
0 0
- Storm1.1.0<组件的并行度和组件的实例个数的关系>
- 用实例解析MyBatis组件的关系
- C#组件和控件的关系
- 自定义组件,AttributeSet和TypedArray的关系
- Storm1.1.0<温故而知新--hdfs和storm的集成>
- Tomcat 各个组件的关系
- Flex组件的继承关系
- 模块, 组件,code的关系
- 组件关联关系的映射
- Android组件之间的关系
- Storm1.1.0<消息的可靠性机制>
- 组件实例的命名规则
- 组件实例的命名规则
- Swing 组件的应用实例
- JQueryEasyUI 组件的实例化
- 使用BaseSPIManager获取组件实例和直接创建组件实例的区别
- ifream 中的控件 和其他组件的层级关系展示
- Unity3d基础之组件 (Component) 和脚本 (Script) 的关系
- windows系统在恢复镜像备份之后,只能启动ubuntu系统,不能启动windows系统的问题解决
- Java泛型详解
- LaTeX 论文排版学习笔记(零基础)
- CentOS6.5 安装Tomcat6
- 百亿互金平台技术栈大起底
- Storm1.1.0<组件的并行度和组件的实例个数的关系>
- Django关闭Debug
- 补1号作业JSP
- OSG学习:使用已有回调示例
- mybatis事务与回滚例子 commit、rollback、autoCommit
- 菜鸟Z学java的第三天
- Java技术----Java泛型详解
- Http用户认证
- odoo10 系统特点