频道栏目
首页 > 网络 > 云计算 > 正文

世界杯外围投注官网

2018-07-11 11:31:49      个评论    来源:chenbinkria的博客  
收藏   我要投稿

一个Topology可以运行多个Worker上,这样可以提高数据处理能力,因为一个worker就是一个进程,更确切的说是一个JVM,很自然的,我们可以想到如果一个worker中可以再起多个线程的话效率就会很高。事实上storm就是这么干的,worker并不是storm集群中最小运行单位。Executer才是storm集群中最小的运行单位。Executer其实是一个线程,你可以这样理解,worker是拓扑的最小运行单位,而Executer是Spout或者Bolt(其实spout也是bolt)最小运行单位。什么意思?运行一个拓扑就是启动一个jvm进程,启动一个spout或者bolt就是启动一个Executer线程(执行器线程)。
然后我们再看几个跟设置并行度有关的参数:
1.setSpout(String id, IRichSpout spout, Number parallelism_hint)
2.setNumTasks(Number val)
3.setNumWorkers(int workers)
4.setNumAckers(int numExecutors)

对于:parallelism_hint (并行度暗示)
其实就是Executor线程的个数,如果配置了worker就会平均分配到可用的worker上
对于:setNumTasks(Number val)
每个Executor执行器执行几个线程去做这件事,可以理解为多线程中同时执行几个run方法里
对于setNumWorkers
顾名思义及时jvm的数量
对于setNumAckers
消息处理的acker数量,辅助用,根据需求修改
其实在官网上有一个非常好的图片可以说清楚他们的关系:

这里写图片描述
关于动态修改需要知道的是:其实就是在调整executor的数量
在命令行动态修改并行度
除了使用世界杯外围投注网站进行调整,还可以在shell命令行下对并行度进行调整。
storm rebalance mytopology -w 10 -n 2 -e spout=2 -e bolt=2
表示 10秒之后对mytopology进行并行度调整。把spout调整为2个executor,把bolt调整为2个executor
注意:并行度主要就是调整executor的数量,但是调整之后的executor的数量必须小于等于task的数量,如果分配的executor的线程数比task数量多的话也只能分配和task数量相等的executor。

相关TAG标签 Storm 并行度 线程
上一篇:HBASE---JavaAPI编程实例
下一篇:Spark分区(Partition)的认识、理解和应用
相关文章
图文推荐

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站