Storm_Storm solt资源不够,再次提交topo / storm 分发任务 浅谈


原文: http://www.tuicool.com/articles/7Fbe6nJ

Storm集群的资源是有限的,如果达到资源使用的临界点,会发生什么?

之前参考了不少资料,但都没有解释这个问题,这段时间不少朋友都问道这个问题,下面通过例证说明该现象。首先将之前一些资料做一些罗列:

资料1:

任务分配时 有两种情况:

  (a)task数目比worker多,例如task是[1 2 3 4],可用的slot只有[host1:port1 host2:port1],那么最终是这样分配

{1: [host1:port1] 2 : [host2:port1]3 : [host1:port1] 4 : [host2:port1]}

可以看到任务平均地分配在两个worker上。

(b)如果task数目比worker少,例如task是[1 2],而worker有[host1:port1 host1:port2 host2:port1 host2:port2],那么首先会将woker排序,  将不同host间隔排列

,保证task不会全部分配到同一个机器 上,也就是将worker排列成

[host1:port1 host2:port1 host1:port2 host2:port2]

然后分配任务为

{1: host1:port1 , 2 : host2:port1}

资料2:

在Pluggable Scheduler之前,Twitter Storm里面对于用户提交的每个Topology进行任务分配是由nimbus来做的,nimbus的任务分配算法可是非常牛逼的哦,主要特点如下

  • 在slot充沛的情况下,能够保证所有topology的task被均匀的分配到整个机器的所有机器上
  • 在slot不足的情况下,它会把topology的所有的task分配到仅有的slot上去,这时候其实不是理想状态,所以。。
    • 在nimbus发现有多余slot的时候,它会重新分配topology的task分配到空余的slot上去以达到理想状态。
  • 在没有slot的时候,它什么也不做

接下来,开始例证内容:

1. 集群情况

  • 1 supervisor
  • 4个slot
  • 1GB mem/slot

2. 提交任务

顺序提交两个主要任务(等第1个任务开始正常运行后提交第2个):

bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.3.jar storm.starter.ExclamationTopology "ex"

bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.3.jar storm.starter.WordCountTopology "wc"

提交截图如下:

可以看到:

第1个任务ex也正常运行,使用3个worker,即3个slot。

第2个任务wc正常运行,默认1个worker,即1个slot。

这是wc正常运行的截图:

3. 提交第3个任务

bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.3.jar storm.starter.WordCountTopology "wc2"

该任务也是wordcount,但topo名字不同。

提交后截图如下:

4. Topo运行状态

1)ex运行正常

第1个运行,占用3个slot,运行正常,默认也是3个slot。

(2)wc运行正常

第2个运行,占用1个slot,但默认是启动3个slot。由于ex拓扑占用3个slot,总量是4,所以整个storm集群剩余slot是1个,wc只能有1个slot。 slot=worker,worker中可以运行多个executor,这里占用28个exeutors也就是28个线程,原则上,worker可以启动无限多个executor(资源足够的情况下)。所以,使用1个worker/slot处理这个拓扑是没问题的。

so,这也就是说明了,如果资源不足,新Topo申请资源时,会压缩配置,使用尽量理想的情况运行拓扑。

(3)wc2没有运行

第3个拓扑,因为集群没有任何资源slot,而同一个slot只能同时运行一个拓扑的任务,所以它只能等待,但是不会消亡,也不会提交不成功或者运行中失败。

那么就愉快的结束例证演示了。



可将 TTL/UART 串口设备连接至以太网 支持网口升级程序 支持TCP服务器、TCP客户端、UDP模式 支持虚拟串口、Web登录或使用VirCom进行配置 ZLSN2003 概述 ZLSN2003是上海卓岚开发的新一代串口以太网嵌入式模块。该模块功能强大,其基本功能是实现串口联网的方便性,即只要和用户的串口TTL电平的串口连接,ZLSN2003就可以将数据发送到基于TCP/IP/UDP的网络服务器上。默认情况下串口和以太网之间是透明传输协议,即串口发送什么,网络就收到什么数据,不会数据格式化。ZLSN2003内部已经集成网络变压器,外围电路非常简单。 ZLSN2003模块为单片机联网、传统串口设备联网提供了快捷、稳定、经济的方案。不仅能够保证您的产品快速上市,并且为您的产品的稳定提供支撑。 特点 支持在线网络升级固件程序,用户可以从卓岚公司获得软件升级工具和升级firmware,可自行升级到最高版本。 使用配置的ZLVircom工具可以搜索、管理局域网内(支持跨网段搜索)、Internet上的ZLSN2003模块。可一键式配置模块的所有参数。设备配置、管理非常方便。 支持DHCP功能,可以动态获得局域网内的DHCP服务器分配的IP。 支持DNS,自动解析目的域名为IP,目的IP可以为动态域名。 作为TCP Server(TCP服务器端)时,支持独有的100个连接的强大连接能力。 作为TCP Client(TCP客户端)的,支持连接8个目标服务器。作为TCP客户端时,可以在断线后自动进行重连。支持隐含心跳技术,保证网线断线后的恢复。 支持UDP、UDP组播等功能。 支持虚拟串口。 规格 网络界面 以太网 10/100 Mbps 保护 内建1KV电磁隔离 串口界面 界面 TTL电平串口 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR,XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 95/98/ME/NT/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC5V(ZLSN2003-3.3V支持3.3V),210~250mA 机械特性 尺寸 长×宽=43 × 26mm 工作环境 工作温度,湿度 0~70℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值