storm性能调优-并行度

在storm的默认设置下

一个superviser启动4个worker进程

每一个topology占用一个worker进程

每个worker会启动excutor

每个excutor默认启动一个task

并行度的介绍

一个 topology 指定多少个 worker 进程并行运行

一个 worker 进程指定多少个 executor 线程并行运行

一个 excutor 线程指定多少个 task 并行运行

在Storm集群中,可以运行一个或多个topology。每个topology包含一个或多个worker进程,每个worker进程可以派生一个或多个executor线程。每个executor线程又可以派生一个或多个task,而task是实际的数据处理单元,也是Storm概念中最小的工作单元。spout或bolt的实例由task承载。

通常情况下,并行度设置越高,topology 的运行效率就越高。但是,不能盲目地将并行度设置得很高,还需要考虑每个 worker 分配的内存大小,并平衡系统的硬件资源,以避免资源浪费。

性能调优

合理的配置并行度

有几个手段可以配置 topology 的并行度:

1. conf.setNumWorkers() 配置 worker 的数量

2. builder.setBolt("NAME", new Bolt(), 并行度) 设置 executor 数量

3. spout/bolt.setNumTask() 设置 spout/bolt 的 task 数量

关于 worker 的并行度:worker 可以分配到不同的 supervisor 节点,这也是 Storm 实现多节点并行计算的主要配置手段。据此, workers 的数量,可以说是越多越好,但也不能造成浪费,而且也要看硬件资源是否足够。

此外,我们还可以根据 topology 中数据量的大小和各个 bolt 单元的业务代码执行时间来调整 worker 的内存空间。如果数据量很大且代码执行时间较长,可以考虑增加单个 worker 的工作内存。

总结起来,worker 的数量,取值因素有:

 1. 节点数量,及其内存容量

 2. 数据量的大小和代码执行时间

 3. 机器的CPU、带宽、磁盘性能等也会对 Storm 性能有影响,但是这些外在因素一般不影响 worker 数量的决策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值