1.一种基于成本效益的storm任务调度方法,其特征在于,包括以下步骤:S1、基于Storm流处理框架,构建出基于流处理的成本效益模型;
S2、在提交topology任务后,若成本效益模型的数据库中有该任务的成本信息,则获取当前topology所需要的资源需求,若当前任务的资源需求超载,则调整worker阈值,并重新提交任务;否则根据数据库中的任务优先级序列表,以成本最小化的方式分配任务;
S3、若成本效益模型的数据库中不存在该任务的成本信息,则将当前的topology按照默认的调度策略来分配任务,并且通过监控脚本和通信探针来获取对应的数据,将这些数据写入到成本效益模型数据库;
S4、通过成本效益的模型,从数据库获取所需要的数据,来计算集群中各个节点的总成本信息;再将其写入到成本效益模型数据库;
S5、根据成本效益模型评判该任务的优先级,并更新任务放置列表,重新提交该topology任务并返回步骤S2。
2.根据权利要求1所述的一种基于成本效益的storm任务调度方法,其特征在于,改进的基于Storm流处理框架包括Storm自定义调度器、主从节点、成本效益模型和成本效益模型数据库,每个从节点中有多个worker进程、监控脚本和获取通信数据的探针,其中:监控脚本,用于监控从节点的CPU和内存资源需求的使用情况,并将使用情况写入成本效益模型数据库;
获取通信数据的探针,用于获取到在任务执行期间,各个节点的通信流量,并将所获取的数据信息写入到成本效益模型数据库;
成本效益模型根据成本效益模型数据库中的信息获取任务的资源需求以及任务的优先级,并存储在成本效益模型数据库中;
Storm自定义调度器调用成本效益模型数据库中任务的资源需求以及优先级,直接或间接的控制主从节点完成任务的调度和放置。
3.根据权利要求1所述的一种基于成本效益的storm任务调度方法,其特征在于,构建出基于流处理的成本效益模型包括:Totalcost=α·Costresource+β·Costenergy+γ·Costct;
其中,Totalcost表示任务的总成本;Costresource表示任务的资源成本;Costenergy表示任务的能耗成本;Costct表示任务的通信成本;α,β,γ分别为资源成本、能耗成本以及通信成本的影响因子。
4.根据权利要求3所述的一种基于成本效益的storm任务调度方法,其特征在于,任务的资源成本Costresource表示为:其中,Costk表示不同类型虚拟机的固定成本;VM={vm1,vm2,…,vmn}表示n个类型的虚拟机的集合,vmn表示第n个类型的虚拟机。
5.根据权利要求3所述的一种基于成本效益的storm任务调度方法,其特征在于,任务的能耗成本Costenergy表示为:其中, 表示所有类型的虚拟机的总能耗;Ct表示t类型虚拟机在任务调度期间所使用的二维资源开销;VM={vm1,vm2,…,vmn}表示n个类型的虚拟机的集合,vmn表示第n个类型的虚拟机;T为任务的调度时间。
6.根据权利要求3所述的一种基于成本效益的storm任务调度方法,其特征在于,任务的通信成本Costct表示为:其中,bandwitht,i表示第t个类型中的第i台虚拟机的总带宽; 表示任务执行器i到任务执行器j之间的通信时间;CT表示任务执行器之间的通信流量;Ct表示t类型虚拟机在任务调度期间所使用的二维资源开销;VM={vm1,vm2,…,vmn}表示n个类型的虚拟机的集合,vmn表示第n个类型的虚拟机。
7.根据权利要求6所述的一种基于成本效益的storm任务调度方法,其特征在于,任务执行器之间的通信流量CT表示为:其中, 表示任务执行器i到任务执行器j之间的通信流量;E为任务执行器的集合。