[发明专利]一种storm任务管理和调度方法有效

专利信息
申请号: 202210053528.X 申请日: 2022-01-18
公开(公告)号: CN114489598B 公开(公告)日: 2023-03-28
发明(设计)人: 高晨 申请(专利权)人: 徐工汉云技术股份有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F9/48
代理公司: 南京纵横知识产权代理有限公司 32224 代理人: 母秋松
地址: 221001 江苏省*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 storm 任务 管理 调度 方法
【权利要求书】:

1.一种storm任务管理和调度方法,其特征在于:包括如下步骤:

在web页面中设置spout节点和bolt节点数据结构的参数,并在web页面上对spout和bolt节点之间进行连线,完成storm拓扑结构抽象,形成storm任务;

将storm任务通过接口提交到dolphinscheduler中,dolphinscheduler根据任务类型jobType字段判断是否为提交的storm任务,若是storm任务,dolphinscheduler根据机器实际运行情况和调度策略,挑选合适的机器提交storm任务,在被挑选的机器上,通过抽取storm任务中的mainJar参数和jobResourceList参数信息,将jar包资源从hdfs下载到被挑选的机器上,执行命令将storm任务提交到storm集群中;

storm集群在收到提交的storm任务时,先执行mainClass定义的主方法,在主方法中获取params信息,抽取出nodes定义的节点信息,遍历所有节点将storm拓扑结构抽象映射成storm拓扑结构;

根据stormTopologyConfig定义的参数设置storm拓扑结构的运行参数,通过storm拓扑提交器将storm拓扑结构提交到storm集群中去运行;

针对正在运行的storm任务,storm rest接口中的host和port分别设置为storm UI的主机和端口信息,通过storm rest接口获取storm任务的概览信息,根据概览信息获取storm拓扑结构id,将storm拓扑结构id作为storm rest接口中参数topologyid参数的值,获取该storm任务的运行worker信息;

根据worker信息,在被挑选的机器上构建flume agen的配置文件,对每一个worker生成一个flume agent配置文件,flume agent配置文件中source类型使用flume自带的exec;

对于flume sink类型采用RabbitmqPublishSink,RabbitmqPublishsink将读取flumechannel中的数据并发布到rabbitmq的主题中,主题名称为storm任务名称,在rabbitmq中声明exchange类型时,选择fanout,即发布订阅模式;

使用python的paramiko模块将flume agent配置文件上传到storm日志文件所在的机器上,远程调用flume-ng agent命令启动flume agent,flume agent采用nohup方式运行,使用paramiko模块的invoke_shell发送执行命令给flume agent,同时paramiko模块休眠一定时间等待命令执行结果并将执行结果返回paramiko模块;

web页面通过websocket连接rabbitmq,订阅flume agent中RabbitmqPublishsink发送到rabbitmq中的storm任务日志信息,在web页面展示订阅的storm任务日志信息;

spout节点和bolt节点数据结构如下所示:

{

nodeId:,

preNodeArray:,

nodeName:,

nodeBusinessConfig:{},

nodeDescription:,

className:,

nodeType:,

grouping:,

taskNum:,

nodeResourceList:

}

其中nodeId表示节点唯一标识;preNodeArray表示父节点id,多个父节点id使用多个逗号相连接;nodeName表示节点名称;nodeBusinessConfig表示节点业务配置信息;nodeDescription表示节点描述;className表示节点运行的完整类名;nodeType表示节点类型,1为spout节点,2位bolt节点;grouping表示数据从父节点到该节点的分组方式,1为shuffleGrouping,即随机分组,2为fieldsGrouping,即按字段分组,3为localOrShuffleGrouping,即本地或随机分组;taskNum表示运行节点的executor数量;nodeResourceList表示节点的使用jar包资源列表;

spout节点的nodeBusinessConfig数据结构如下所示:

nodeBusinessConfig:{

kafkaSpoutConfig:{

groupField:,

needDeserialize:,

deserializeClass:,

zookeeperConnect:,

groupId:,

topic:,

autoOffsetReset:

}

}

其中kafkaSpoutConfig是kafka连接信息的数据结构,groupField表示数据传输到下个节点的分组字段名称,needDeserialize表示是否对kafka连接信息进行反序列化,1为进行反序列化,2为不进行反序列化;deserializeClass表示kafka连接信息反序类化的类名;zookeeperConnect表示zookeeper的连接信息;groupId表示消费者分组id;topic表示kafka中的消息主题;autoOffsetReset表示Kafka消费策略;

执行命令将storm任务提交到storm集群中的命令如下所示:

storm jar mainJar mainClass params--jar dependJars

其中:mainJar表示storm任务中的mainJar参数信息;mainClass表示storm任务中的mainClass参数信息;params表示storm任务中的params参数信息;dependJars是storm任务中的jobResourceList jar包信息,多个jar包采用逗号分隔。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于徐工汉云技术股份有限公司,未经徐工汉云技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210053528.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top