




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 调度细则1、 任务调度算法以worker为维度;2、 调度过程中正在进行的调度动作不会对已发生的调度动作产生影响;3、 调度过程中用户可以自定义 useDefined Assignment,和使用已有的old Assignment,这两者的优先级是:useDefined Assignmentold Assignment;4、 用户可以设置task.on.differ.node参数,强制要求同组件的task分布到不同supervisor上;默认调度算法:1、以worker为维度,尽量将worker平均分配到各个supervisor上;2、以worker为单位,确认worker与task数目大致的对应关系(注意在这之前已经其他拓扑占用利用的worker不再参与本次动作);3、建立task-worker关系的优先级依次为:尽量避免同类task在同一work和supervisor下的情况,尽量保证task在worker和supervisor基准上平均分配,尽量保证有直接信息流传输的task在同一worker下;2 Worker资源足够,测试调度分配是否合理2.1 常规测试一 配置:task.on.differ.node=false,topology_nums=1, topology_level=1, workers=6, spout.parallel=6, bolt_0.parallel=6, acker.executors=6; 每台机子canused_slot=16 测试目标(当每台机子端口一致时,work平均分配,同类task尽量分开,且task尽量均匀分布于work和supervisor)S_x 代表spout-task, B_x_x 代表第x个bolt-task,A_x 代表acker-taskSupervisor123456Work1spout-task111111Bolt0-task111111acker-task111111 测试结果:Worker被一一分配到supervisor上Task按规定分配到work上去:合理2.2 常规测试二 配置:task.on.differ.node=false,topology_nums=1, topology_level=1, workers=24, spout.parallel=10, bolt_0.parallel=18, acker.executors=12;机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4 测试目标以worker为维度,尽量将worker平均分配到各个supervisor上;保证同类型task尽量均分到不同worker和supervisor的基础上,其次保证每一个worker和supervisor的task数量均衡,最后保证直接相关的task放到一个进程上去; 测试结果:Worker被一一分配到supervisor上Task按规定分配到work上去(共有24端口,先分配12个acker保证能够放到不同的进程且每个supervisor有2个acker;再分配18个bolt-task,其中6个task会与acker在一个进程;最后分配10个spout-task分配,应该和bolt-task在一起)合理2.3 常规测试三 配置:task.on.differ.node=false,topology_nums=1, topology_level=2, workers=12, spout.parallel=8,bolt_0.parallel=9,bolt_1.parallel=9,acker.executors=8;机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4、 测试目标以worker为维度,尽量将worker平均分配到各个supervisor上;保证同类型task尽量均分到不同worker和supervisor的基础上,其次保证每一个worker和supervisor的task数量均衡;最后保证直接相关的task放到一个进程上去, 测试结果:Worker被平均分配到supervisor上Task按规定分配到work上去合理3 worker 设置测试3.1 worker数量设置大于端口数量 配置:task.on.differ.node=false,topology_nums=1, topology_level=1, workers=20, spout.parallel=8,bolt_1.parallel=9,acker.executors=8;机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4、 测试目标当worker数量不足时,调度可以分配;分配数采用的是最大可利用的端口数量 测试结果:分配成功3.2 worker进程内存设置效果(略)Worker占用内存大小可以自定义4 storm集群变化对已有调度行为的影响4.1 增加superivsor(略)不影响已有拓扑任务调度4.2 杀死worker(略)重启worker,且调度正常4.3 杀死supervisor(略)拓扑继续跑,一切正常4.4 其中一台机子宕机(略)之前该机子跑的task将重新参与调度,调度结果符合要求4.5 增加topology 测试目标1:测试已有topology对新启动的topology任务调度无影响;2:已有topology启用过的worker不再被其他topology使用; 测试结果:先启动topology1:再启动topology2合理4.6 增加supervisor,再rebalance 配置:task.on.differ.node=false,topology_nums=1, topology_level=1, workers=7, spout.parallel=8,bolt_1.parallel=9,acker.executors=8; 测试目标增加supervisor,再rebalance操作后,新增加的supervisor会加入任务调度过程,调度分配合理 测试结果:最初:增加supervisor,再rebalance操作:合理(新增加的supervisor会加入任务调度过程)4 用户自定义任务调度测试自定义调度有用户自己去制定调度,以下贴出了读取配置文件设置自定义调度的过程:文件对应代码:4.1 新建worker,但是不加入task 配置: 测试目标用户自定义worker,但没有设置task,则调度过程将按照默认调度 测试结果:与预期相符4.2 自定义完整的调度 自定义任务配置: 测试目标自定义任务调度与拓扑跑起来时的任务调度一致 测试结果:与预期相符4.3 用户部分定义的调度 自定义任务配置:设置了3个worker和4个task,但目前用户自定义的2个worker和2个task,这种情况叫用户部分自定义。 测试目标调度过程中,先按照用户定义的任务调度,余下部分按照默认调度; 测试结果:与预期相符4.4 用户自定义worker数量大于允许worker数量(略)将按照默认算法调度任务,自定义任务调度失效4.5 用户自定义任务出错(略)将按照默认算法调度任务,自定义任务调度失效4.6 在已有的拓扑下,再增加个拓扑第一个拓扑是用户自定义,第二拓扑采用默认调度:自定义任务调度正在使用的worker,不再参与接下来的任务调度行为第一个拓扑是默认调度,第二拓扑采用用户自定义:默认调度正在使用的worker,不再参与接下来的任务调度行为4.7 未定义端口号,只定义了hostname未设定端口号:测试目标:自定义的worker是否按设置被调度到了相应supervisor上测试结果:4个total bolt task被分配到一个worker并且被分配到了指定Hostname上4.8 自定义端口号被占用测试目标:当端口号被占用时,自定义的worker是否按照正常调度选择其他supervisor测试结果:158的6803被占用,使用默认调度:5 old任务调度测试5.1 测试old任务调用有效性 预先设置好用户的old assignment,已知zk上存在的old assignment如下: 再跑新的拓扑,任务调度将会参照zk存储的任务调度,结果:与之前保持一致old assignment 使用合理,符合预期结果5.2 新跑的拓扑与old assignment不一致(略)Old assignment能够在满足新跑拓扑的配置:则采用old assignmentOld assignment的worker数量小于新跑拓扑配置的worker数量:则放弃old assignmentOld assignment的部分满足新跑拓扑的配置:则部分采用old assignment,余下采用默认调度6 old assignment和用户自定义同时启用优先级顺序:用户自定义old assignment,符合预期6 测试task.on.differ.nodetask.on.differ.node可以强制设置同类型的task在不同supervisor上6.1 普通例子1 配置:conf_task是map结构,该语句限制了bolt-task必须再不同supervisor上 测试目标:无法进行调度分配,因为conf_task和worker=1相互矛盾 结果符合预期6.2普通例子2 配置:conf_task是map结构,该语句限制了bolt-task必须再不同supervisor上;这里只有5个suprvisor 测试目标:bolt-task将被分配到不同supervisor上去 结果符合预期6.3普通例子3配置:自定义任务调度和 task.on.differ.node设置相矛盾 测试目标:当自定义任务调度和 task.on.differ.node设置相矛盾时,优先满足自定义任务调度; 结果符合预期7 测试supervisor.use.ip=true调度7.1 常规测试 配置:task.on.differ.node=false,topology_nums=1, topology_level=1, workers=10 spout.parallel=10, bolt_0.parallel=15 acker.executors=10机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4 测试目标以worker为维度,尽量将worker平均分配到各个supervisor上;保证同类型task尽量均分到不同worker和supervisor的基础上,其次保证每一个worker和supervisor的task数量均衡,最后保证直接相关的task放到一个进程上去; 测试结果:Worker被一一分配到supervisor上Task按规定分配到work上去合理7.2 old Assignment 测试 配置:task.on.differ.node=false,topology_nums=1, topology_level=1, workers=10 spout.parallel=10, bolt_0.parallel=15 acker.executors=10机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4、机1端口数量=4 临时增加一个机器机1端口数量=4 测试目标以worker为维度,尽量将worker平均分配到各个supervisor上;保证同类型task尽量均分到不同worker和supervisor的基础上,其次保证每一个worker和supervisor的task数量均衡,最后保证直接相关的task放到一个进程上去; 测试结果:Worker被一一分配到supervisor上Task按规定分配到work上去合理注意:当old Assignment中的supervisor对应的hostname,和supervisor.use.ip
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46183-2025鞋类化学试验方法含氯苯酚的测定气相色谱-串联质谱法
- 新能源汽车充电技术创新2025年市场趋势与服务安全报告
- 仿制药一致性评价2025年对医药行业药品研发合作模式的影响报告
- 2025年新能源行业企业社会责任报告编制与绿色生产实践
- 数字人民币跨境支付技术挑战及2025年创新解决方案深度分析
- 基于AI技术的文化遗产数字化展示与传播策略研究报告
- 2025年光伏农业大棚在渔业养殖中的应用与效益研究报告
- 口腔咨询师线上知识培训课件
- 15.1 人体内物质的运输(第4课时)说课稿-苏科版生物八年级上册
- 2025年智能投顾平台风险控制与合规运营市场风险管理能力提升策略报告
- 养好小金鱼教学课件
- 2025年度社区工作者真题题库及答案
- 2025年9月 基孔肯雅热疫情防控工作的经验总结报告
- 2025年中国硅灰石超细粉市场调查研究报告
- 2025年幼儿园班级管理考试题及答案
- 鞘内药物输注技术
- 2025年物联网领域射频识别(RFID)技术创新与产业融合发展报告
- 2025年工会财务知识竞赛考试题库及参考答案
- 军队伤病员管理暂行办法
- 上海婚恋婚介培训课件
- 《中国高血压防治指南(2024年修订版)》解读课件
评论
0/150
提交评论