一种服务于企业的大数据计算节点的负载均衡方法与流程

文档序号:15262086发布日期:2018-08-24 21:55阅读:257来源:国知局

本发明涉及计算机大数据技术领域,尤其涉及一种服务于企业的大数据计算节点的负载均衡方法。



背景技术:

大数据计算平台是由多个计算节点(例如计算机或服务器)组成的集群,大数据计算平台在为计算节点分配计算任务时,会依据计算节点中的处理器的计算资源为计算节点分配计算任务,处理器计算资源=处理器核心数*单核心线程数。目前,越来越多的企业开始建立自己的大数据库,对于企业的发展具有重要的战略意义,大数据的价值体现在以下几个方面:(1)、对大量消费者提供产品或服务的企业可以利用大数据进行精准营销;(2)、做小而美模式的中小微企业可以利用大数据做服务转型;(3)、面临互联网压力之下必须转型的传统企业需要与时俱进充分利用大数据的价值。

在大数据技术中,最为常见的系统为hadoop系统,但是目前的hadoop系统的负载均衡方法存在一些问题,包括(1)、无法保证优先化负载超大旳机架,如果在某一个机架a内的计算节点负载很大的时候,此时不进行平衡,就会造成机架a崩溃。(2)、在hadoop系统系统中大部分的节点都是处于overutilizeddatananodes的状态,能够参加到平衡节点是非常少的,这种情况下机架内是无法达到平衡的。



技术实现要素:

本发明为一种服务于企业的大数据计算节点的负载均衡方法,通过在现有的hadoop系统的负载均衡算法的基础上,对负载特别大的机架的节点进行优先平衡处理,包括对机架或者机架间进行平衡处理,提高了大数据计算节点负载的稳定性,降低了计算机架构和计算节点崩溃的可能性;通过采用mongodb数据库优化方案,解决了单个控制节点性能瓶颈问题,提高了数据查询的速率,还支持控制节点的插拔,并可根据实际需要调整控制节点的数量。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明提供一种服务于企业的大数据计算节点的负载均衡方法,包括对基于hadoop架构的大数据计算节点的负载算法的改进方法;所述对基于hadoop架构的大数据计算节点的负载算法的改进方法包括对负载特别大的机架进行优化平衡处理,在机架内或者机架间进行平衡处理,并且只平衡overutilizeddatanodes节点,改进后的算法具体实施步骤如下:

步骤一:计算每个机架内或者机架间的mi、ai、bi(i为机架的序号;a、b、m为三个不等同的数据节点;mi、ai、bi表示第i个机架的a、b、m节点数据负载数值);

步骤二:判断bi是否大于q,如果大于q则选定机架i为优选平衡机架,加入到有限的平衡机架队列priorbalancelist中,同时计算出q(q值为集群负载均衡量的值);

步骤三:判断bi是否小于1,如果小于1,则将该机架加入到forbalancelist队列中;

步骤四:从priorbalancelist队列中取出一个机架,设定为j,同时进行机架内平衡,从forbalancelist队列中取出一个机架k,并且在j和k之间执行机架间平衡策略,并修正qj和bk的值;

步骤五:循环执行步骤4直至机架j的q值为0或者机架k的b值大于1,然后退出平衡策略

步骤六:从priorbalancelist队列中取出一个机架,并设定为j,先进行机架内平衡,修正其对应的q值和b值;

步骤七:如果机架bi小于等于q,那么按照传统的hadoop平衡法执行。

进一步地,包括第i个机架的a、b、m节点数据负载数值计算公式为:

其中,所述lt(cput)表示t时刻,i节点的cpu使用率;所述lt(meni)表示内存使用率;所述lt(neti)表示网络传输速率;所述lt(diski)表示i/o读取速率;

其中,i个节点构成集群,在t时刻,所述集群的平均负载情况的计算公式为:

其中,所述lavg(t)表示t时刻集群的平均负载情况;所述lavg(cput)表示t时刻集群cpu的平均使用率;所述lavg(ment)表示t时刻集群内存的平均使用率;所述lavg(nett)表示t时刻集群的平均实时网络吞吐量;所述lavg(diskt)表示t时刻集群的平均实时i/o速率;

包括i节点在t时刻时,其数据处理能力定义为ht(ni),计算公式为:

ht(ni)=lt(ni)/lavg(t);

其中,所述ht(ni)表示t时刻i节点的处理能力;

包括i节点的负载能力均值,其计算公式为:

lavg(n)=l(t)/∑ht(ni);

其中,所述lavg(n)表示i个节点的总负载能力的均值;

其中,所述q值,也就是集群负载均衡量lbmf的值,其公式为:

σ2=∑{lt(ni)/ht(ni)-lavg(n)}2

q=lbmf=σ/lavg(n);

其中,所述σ表示各节点负载标准差;所述q值用于对均衡进行判断,若q值小于0.05则认为达到负载均衡,否则不均衡。

进一步地,所述的一种服务于企业的大数据计算节点的负载均衡方法,还包括对基于hadoop架构的大数据计算节点的负载均衡算法的执行方法,其步骤如下:

步骤一:在负载均衡算法程序中计算出系统所有的机架的datanode节点的储存空间在一段时间内的平均实用率m;

步骤二:对系统中的datanode节点进行分类,将节点分成四类,同时构建出四个链表用于保存各类节点信息;

步骤三:根据平衡策略,先进行机架内平衡,然后再进行机架之间的平衡;

步骤四:循环执行平衡算法,直至整个系统平衡偏差在设定值范围之内。

进一步地,所述的一种服务于企业的大数据计算节点的负载均衡方法,还包括对mongodb数据库的优化方法;

所述对mongodb数据库的优化方法包括如下步骤:

步骤一:将控制节点中的两个核心文件fsimage和editlog持久化到mongodb数据库中来,并且还把控制节点所维护的文件名到数据块的映射以及数据块到数据节点的映射持久化到mongodb数据库中;

步骤二:将所有的控制节点都同mongodb数据库进行连接,控制节点只允许同之前的固定客户端进行通信;

步骤三:客户端读文件,将mongodb数据库与客户端所对应的一个控制节点进行连接,控制节点先在自己的元数据信息中查找文件所对应的元数据信息,也就是找到文件世纪存储的数据块位置;如果查找成功的话,向相应的数据节点请求读取数据。如果查找失败,就访问mongodb数据库,在mongodb数据库查询文件所对应的元数据信息,把查询到的信息保存到控制节点的内存中,下一次客户端再访问同样的文件,控制节点就能在本地节点查找到文件所对应的元数据信息,就不用向mongodb数据库发送查询请求,之后就与传统的客户端同控制点以及数据节点读文件过程一样。

步骤四:客户端写文件,客户端与控制节点建立通信连接,在控制节点中创建写文件的元数据信息,控制节点分配一个数据节点给客户端写入,然后客户端再向数据节点写入文件。

进一步地,本发明是基于hadoop大数据存储系统实现的,采用双机热备份技术。

进一步地,所述hadoop大数据存储系统包括hadoop集群、交换机、路由器;

所述hadoop集群包括八台普通pc机器;所述八台普通pc机器中有两台普通pc机器分别用作第一控制节点(namenode)和第二控制节点(secondenamenode),余下六台用作数据节点(datenode);

所述第一控制节点(namenode)的硬件配置包括inter(r)pentium(r)4cpu3.20ghz主频、3g内存,320g硬盘,100mbps网卡;

所述第二控制节点(secondenamenode)的硬件配置包括inter(r)pentium(r)4cpu3.20ghz主频、2g内存,320g硬盘,100mbps网卡;

所述数据节点(datenode)硬件配置包括inter(r)pentium(r)4cpu2.666ghz主频,2g内存,1t硬盘,100mbps网卡;

所述交换机为百兆以太网交换机。

本发明具有以下有益效果:

1、本发明在现有的hadoop系统的负载均衡算法的基础上,对负载特别大的机架的节点进行优先平衡处理,包括对机架或者机架间进行平衡处理,提高了大数据计算节点负载的稳定性,降低了计算机架构和计算节点崩溃的可能性;

2、本发明采用mongodb数据库优化方案,解决了单个控制节点性能瓶颈问题,提高了数据查询的速率,还支持控制节点的插拔,并可根据实际需要调整控制节点的数量。

附图说明

图1为本发明基于hadoop架构的大数据计算节点的负载算法的改进方法流程图;

图2为mongodb数据库优化方案架构图;

图3为大数据存储系统的架构图;

图4为块报告结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1-4所示,本发明为一种服务于企业的大数据计算节点的负载均衡方法,包括对基于hadoop架构的大数据计算节点的负载算法的改进方法;对基于hadoop架构的大数据计算节点的负载算法的改进方法包括对负载特别大的机架进行优化平衡处理,在机架内或者机架间进行平衡处理,并且只平衡overutilizeddatanodes节点,改进后的算法具体实施步骤如下:

步骤一:计算每个机架内或者机架间的mi、ai、bi(i为机架的序号;a、b、m为三个不等同的数据节点;mi、ai、bi表示第i个机架的a、b、m节点数据负载数值);

步骤二:判断bi是否大于q,如果大于q则选定机架i为优选平衡机架,加入到有限的平衡机架队列priorbalancelist中,同时计算出q(q值为集群负载均衡量的值);

步骤三:判断bi是否小于1,如果小于1,则将该机架加入到forbalancelist队列中;

步骤四:从priorbalancelist队列中取出一个机架,设定为j,同时进行机架内平衡,从forbalancelist队列中取出一个机架k,并且在j和k之间执行机架间平衡策略,并修正qj和bk的值;

步骤五:循环执行步骤4直至机架j的q值为0或者机架k的b值大于1,然后退出平衡策略

步骤六:从priorbalancelist队列中取出一个机架,并设定为j,先进行机架内平衡,修正其对应的q值和b值;

步骤七:如果机架bi小于等于q,那么按照传统的hadoop平衡法执行。

其中,包括第i个机架的a、b、m节点数据负载数值计算公式为:

其中,lt(cput)表示t时刻,i节点的cpu使用率;lt(meni)表示内存使用率;lt(neti)表示网络传输速率;lt(diski)表示i/o读取速率;

其中,i个节点构成集群,在t时刻,集群的平均负载情况的计算公式为:

其中,lavg(t)表示t时刻集群的平均负载情况;lavg(cput)表示t时刻集群cpu的平均使用率;lavg(ment)表示t时刻集群内存的平均使用率;lavg(nett)表示t时刻集群的平均实时网络吞吐量;lavg(diskt)表示t时刻集群的平均实时i/o速率;

包括i节点在t时刻时,其数据处理能力定义为ht(ni),计算公式为:

ht(ni)=lt(ni)/lavg(t);

其中,ht(ni)表示t时刻i节点的处理能力;

包括i节点的负载能力均值,其计算公式为:

lavg(n)=l(t)/∑ht(ni);

其中,lavg(n)表示i个节点的总负载能力的均值;

其中,q值,也就是集群负载均衡量lbmf的值,其公式为:

σ2=∑{lt(ni)/ht(ni)-lavg(n)}2

q=lbmf=σ/lavg(n);

其中,σ表示各节点负载标准差;q值用于对均衡进行判断,若q值小于0.05则认为达到负载均衡,否则不均衡。

一种服务于企业的大数据计算节点的负载均衡方法,还包括对基于hadoop架构的大数据计算节点的负载均衡算法的执行方法,其步骤如下:

步骤一:在负载均衡算法程序中计算出系统所有的机架的datanode节点的储存空间在一段时间内的平均实用率m;

步骤二:对系统中的datanode节点进行分类,将节点分成四类,同时构建出四个链表用于保存各类节点信息;

步骤三:根据平衡策略,先进行机架内平衡,然后再进行机架之间的平衡;

步骤四:循环执行平衡算法,直至整个系统平衡偏差在设定值范围之内。

一种服务于企业的大数据计算节点的负载均衡方法,还包括对mongodb数据库的优化方法;

对mongodb数据库的优化方法包括如下步骤:

步骤一:将控制节点中的两个核心文件fsimage和editlog持久化到mongodb数据库中来,并且还把控制节点所维护的文件名到数据块的映射以及数据块到数据节点的映射持久化到mongodb数据库中;

步骤二:将所有的控制节点都同mongodb数据库进行连接,控制节点只允许同之前的固定客户端进行通信;

步骤三:客户端读文件,将mongodb数据库与客户端所对应的一个控制节点进行连接,控制节点先在自己的元数据信息中查找文件所对应的元数据信息,也就是找到文件世纪存储的数据块位置;如果查找成功的话,向相应的数据节点请求读取数据。如果查找失败,就访问mongodb数据库,在mongodb数据库查询文件所对应的元数据信息,把查询到的信息保存到控制节点的内存中,下一次客户端再访问同样的文件,控制节点就能在本地节点查找到文件所对应的元数据信息,就不用向mongodb数据库发送查询请求,之后就与传统的客户端同控制点以及数据节点读文件过程一样。

步骤四:客户端写文件,客户端与控制节点建立通信连接,在控制节点中创建写文件的元数据信息,控制节点分配一个数据节点给客户端写入,然后客户端再向数据节点写入文件。

一种服务于企业的大数据计算节点的负载均衡方法,本发明是基于hadoop大数据存储系统实现的,采用双机热备份技术。

其中,hadoop大数据存储系统包括hadoop集群、交换机、路由器;

hadoop集群包括八台普通pc机器;八台普通pc机器中有两台普通pc机器分别用作第一控制节点(namenode)和第二控制节点(secondenamenode),余下六台用作数据节点(datenode);

第一控制节点(namenode)的硬件配置包括inter(r)pentium(r)4cpu3.20ghz主频、3g内存,320g硬盘,100mbps网卡;

第二控制节点(secondenamenode)的硬件配置包括inter(r)pentium(r)4cpu3.20ghz主频、2g内存,320g硬盘,100mbps网卡;

数据节点(datenode)硬件配置包括inter(r)pentium(r)4cpu2.666ghz主频,2g内存,1t硬盘,100mbps网卡;

交换机为百兆以太网交换机。

为了更好的对本发明改进后的负载均衡方法进行正确性和可行性验证,作出下列负载机架实验拓扑图进行实验分析,其中,在机架a、b中分别含有3台计算机a1、a2、a3和b1、b2、b3,m中含有两台计算机m1和m2,这些计算机的配置为1.3gcpu、2g内存,及其的操作系统为ubuntu14.04,hdfs的文件块的大小设置为10m,实验中的threshold阈值设置为10%,改进后的算法q值设置为3,初始的时候a为超负载状态,其中a中的3个节点均是处于超负载overutilizeddatanodes状态,其中hadoop系统已有的负载均衡算法之行的时间为7.68分钟,本发明改进后的算法执行时间为7.21分钟,同时其平衡前后的数据存储率如下表所示:

通过实验结果可以看出,改进后的算法与改进后的算法在时间效率上差距不是很大,运行时间几乎是差不多的,但是对于机架a的计算节点的平衡,没有改进的hadooop系统的负载均衡算法一直是持续到最后才完成a的平衡,但是本发明改进后的算法,其在运行最开始的时候就可以完成对超负载的机架a进行平衡,使得机架a能够处于较好的平衡状态,避免机架a超负载情况下对整个hadoop架构的数据系统性能造成影响。

在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料过着特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1