`

storm并行度

 
阅读更多

 

 

1.storm并行度
  storm的并行是由非常多的supervisor完成的。
  storm的supervisor运行的是topology中的spout/bolt task。
  task是storm中进行计算的最小的运行单位,表示的是spout、bolt的运行实例。
  程序执行的最大粒度的运行单位是进程。在supervisor中,运行task的进程称作worker。
  supervisor节点上可以运行非常多的worker。
  在worker中可以运行线程的,这些线程称作executor。在executor中,运行task。
 
  总结一下,supervisor(节点)>worker(进程)>executor(线程)>task(实例)

 

下面以一个节点为图例说明下 storm并行度:

 

 

 

 

 

 

2 如何具体设置并行度:

 

2.1)supervisor: 在哪个节点上启动supervisor 则就会产生  进入zk内查看storm结果集

2.2)  worker:storm.yaml中,如下指定了 worker进程的端口,以及当前机器下能运行的work数量

       每个端口用于对应进程对外通讯的。

       如下配置可以不配置,在storm的 storm-core-xx.jar中的default.xml中做了默认配置。

 

  1. supervisor.slots.ports:    // 指定storm通讯端口    
  2.       - 6701  
  3.       - 6702  
  4.       - 6703  
  5.       - 6704  

 

       worker进程数量也可以通过config.setNumWorkers(workers)设置。(优先级更高)

 

 2.3)  executor的设置:

builder.setSpout(id, spout, parallelism_hint): parallelism_hint设置spout的数量

builder.setBolt(id, bolt, parallelism_hint)设置的。parallelism_hint设置bolt的数量

 

 2.4)  task的设置:

   task是通过 spout/boltDeclarer.setNumTasks(num)设置对应spout/bolt的task个数。

 


默认情况下,每个supervisor启动4个worker,每个worker启动1个executor,每个executor中会有1个task。
翻译成人类语言:  每台机器启动4个进程,每个进程里面跑一个线程,每个线程来具体执行一个 bolt/spout的实例

 

即: 可以通过 config设置进程个数  通过TopologyBuilder设置spout/bolt 各自的线程个数, 也能通过TopologyBuilder创建的对应的
Spout/BoltDecvlarer 来设置每个线程运行的具体task个数。

 

设置代码如下:

 

public class MyLocalStormTopology {

	/**
	 * 组装火车 轨道  并让火车在轨道上行驶
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws Exception {

		// 祖品列车
		TopologyBuilder topologyBuilder = new TopologyBuilder();
		SpoutDeclarer spoutDeclarer = topologyBuilder.setSpout("1", new MySpout2()); // 定义1号车厢
		//spoutDeclarer.setNumTasks(val);// 设置task数量
		//topologyBuilder.setSpout(id, spout, parallelism_hint); // 动态设置 spout的executor数量
		BoltDeclarer boltDeclarer = topologyBuilder.setBolt("2", new MyBolt1()).shuffleGrouping("1");// 定义2号车厢 并和1号车厢连接起来   
		//boltDeclarer.setNumTasks(num); 动态设置 task数量
		//topologyBuilder.setBolt(id, bolt, parallelism_hint); 动态设置 bolt的executor数量

		// 造出轨道 在集群中运行
		StormSubmitter stormSubmitter = new StormSubmitter();// storm集群执行
		//HashMap conf = new HashMap();
		Config config = new Config();
		//config.setNumWorkers(workers); 动态设置每台机器运行work进程数
		stormSubmitter.submitTopology(MyLocalStormTopology.class.getSimpleName(), config, topologyBuilder.createTopology());
		
	}

 

 

  worker和外部通信:

 

 

 

  worker调优:

 Config类对象设置如下参数,来调整 worker进入数据,处理数据的容量大小

 

 

 

 

 

 

 

sdfsdfds

  • 大小: 213.3 KB
  • 大小: 19.6 KB
  • 大小: 19.6 KB
  • 大小: 153.8 KB
分享到:
评论

相关推荐

    Storm下基于最佳并行度的贪心调度算法.pdf

    【Storm下基于最佳并行度的贪心调度算法】是一种针对开源分布式实时计算框架Storm的优化策略,旨在解决默认调度策略可能导致的任务处理延迟和吞吐量降低问题。在Storm中,任务并行度的配置对系统性能有显著影响,不...

    storm入门.pdf

    5. 易于扩展:可以灵活调整spout和bolt的并行度来扩展处理能力。 Storm的拓扑结构是由spouts和bolts按照特定的顺序和逻辑连接而成的网络。数据流分组是拓扑设计中的一个关键点,它决定了数据如何在各个bolt之间流动...

    storm流数据处理开发应用实战(linux实验环境,storm搭建完毕后的开发)

    Storm并行结构 并行度是决定Storm性能的关键因素,合理配置可以提高处理能力并确保数据处理的正确性。 ### 13-15. 提交拓扑至Storm 这部分介绍了如何使用命令行或者Eclipse插件将编写的Storm拓扑提交到运行中的...

    storm-hbase集成

    2. 并行度调整:适当增加 Bolt 的并行度,以提高处理速度。 3. 缓存策略:利用内存缓存减少对 HBase 的频繁访问,提升整体效率。 4. 异步写入:使用异步写入机制,避免阻塞 Storm 的数据处理线程。 六、应用场景 1....

    storm-wordcount例子

    Storm提供了灵活的API来创建和提交拓扑,这使得我们可以根据实际需求调整并行度,优化性能。 此外,Storm的容错机制也是其一大特点。如果某个工作节点故障,Storm会自动重新分配任务,确保数据处理的连续性。同时,...

    storm 流式处理 安装软件(包括zookeeper,jzmq,zeroMQ,storm)

    - 学习如何设计高效的topology,考虑并行度、容错性和资源利用率。 - 实践部署和监控Storm集群,了解如何调整参数优化性能。 - 探索Storm与其他技术(如Kafka、Hadoop等)的集成,实现数据管道的构建。 总之,Storm...

    storm原理分析

    2. **Storm/storms/**:存储 Topology 的基本信息,包括名称、启动时间、运行状态、Worker 数量和组件的并行度设置等。 3. **Storm/assignments/**:存储 Nimbus 为每个 Topology 分配的任务信息,包括本地存储目录...

    收集的storm的pdf版资料

    6. **配置与优化**:Storm允许用户调整各种参数以优化性能,例如并行度、缓冲区大小等。熟悉这些配置选项可以帮助提升系统的处理速度和稳定性。 7. **监控与调试**:Storm提供了一套全面的监控工具,如Web UI和JMX...

    storm开发设计规范

    - 遵循合适的并行度设置,以平衡资源利用和处理速度。 3. **创建Topology**: - 明确拓扑结构,合理规划Stream Groupings以优化数据流的处理。 - 使用配置文件管理拓扑的参数,便于调整和部署。 **总结**: ...

    storm_webservice.zip

    7. **性能优化**:包括合理设置worker数量、task并行度、数据分区策略等,以提高处理效率。 8. **监控和日志**:对于生产环境的Web服务,监控其性能和健康状态至关重要,这可能涉及到集成Prometheus、Grafana等工具...

    中国移动storm项目代码

    10. **性能调优**:考虑到基站数据的高并发性和实时性要求,项目可能涉及到 Storm 的性能调优,包括优化拓扑结构、调整并行度以及优化数据处理逻辑等。 综上所述,【中国移动storm项目代码】是一个综合性的实时大...

    Storm编程实例

    4. **动态调整**:在运行时,可以动态调整拓扑的执行参数,如增加或减少工作节点,调整并行度等。 在"storm-test"这个文件中,很可能包含了示例代码、配置文件和必要的资源,帮助你实践上述的理论知识。通过阅读和...

    Apache+Storm+快速起步.pdf 亲测 好评哦

    Storm的性能优化可以包括对Spouts和Bolts的并行度调整、消息批处理、本地计算等策略。 除了技术细节,Storm的快速起步还涉及实践中的应用。在多个实际项目中,Storm用于各种场景,如实时分析、在线机器学习、连续...

    Apache Storm-0.8.1 api文档 (html)

    通过阅读 `doc-0.8.1` 文件夹中的 HTML 文档,开发者可以详细了解 Storm 的 API 使用方法,包括创建和提交拓扑、定义 spouts 和 bolts、设置并行度以及处理容错等。这将有助于他们构建高效、可靠的实时数据处理系统...

    apache-storm-1.0.2-src

    在 "apache-storm-1.0.2" 的源代码中,你可以深入研究 Storm 的实现细节,包括元数据管理、容错机制、并行度控制、配置选项等。此外,通过查看示例拓扑和组件,可以更好地理解如何构建自己的实时处理应用。 总结来...

    storm与spark简介

    它是一个不可变的、可分区的集合,可以在集群中并行处理。RDD 具有以下几个特点: - **容错性**:RDD 能够自动恢复丢失的数据分区。 - **可缓存**:数据可以保存在内存中,以提高重复使用的性能。 - **血统**:每...

    那些storm的坑坑

    5. **性能优化**:包括调整拓扑结构、数据分组策略,优化并行度,以及内存和CPU的使用。 6. **实战案例**:分享实际项目中遇到的问题,以及如何解决这些问题,可能包括数据丢失、延迟过高、资源占用过大的场景。 7...

Global site tag (gtag.js) - Google Analytics