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

技术编号:18767133 阅读:58 留言:0更新日期:2018-08-25 12:51
本发明专利技术公开了一种服务于企业的大数据计算节点的负载均衡方法,涉及计算机大数据技术领域。包括对基于Hadoop架构的大数据计算节点的负载算法的改进方法、负载均衡算法的执行方法、对MongoDB数据库的优化方法;将所有的控制节点都同MongoDB数据库进行连接,控制节点只允许同之前的固定客户端进行通信。本发明专利技术通过在现有的Hadoop系统的负载均衡算法的基础上,对负载特别大的机架的节点进行优先平衡处理,提高了大数据计算节点负载的稳定性,降低了计算机架构和计算节点崩溃的可能性;通过采用MongoDB数据库优化方案,解决了单个控制节点性能瓶颈问题,提高了数据查询的速率,还支持控制节点的插拔,并可根据实际需要调整控制节点的数量。

【技术实现步骤摘要】
一种服务于企业的大数据计算节点的负载均衡方法
本专利技术涉及计算机大数据
,尤其涉及一种服务于企业的大数据计算节点的负载均衡方法。
技术介绍
大数据计算平台是由多个计算节点(例如计算机或服务器)组成的集群,大数据计算平台在为计算节点分配计算任务时,会依据计算节点中的处理器的计算资源为计算节点分配计算任务,处理器计算资源=处理器核心数*单核心线程数。目前,越来越多的企业开始建立自己的大数据库,对于企业的发展具有重要的战略意义,大数据的价值体现在以下几个方面:(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)}2Q=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)Pe本文档来自技高网...

【技术保护点】
1.一种服务于企业的大数据计算节点的负载均衡方法,其特征在于,包括对基于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平衡法执行。...

【技术特征摘要】
1.一种服务于企业的大数据计算节点的负载均衡方法,其特征在于,包括对基于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平衡法执行。2.根据权利要求1所述的一种服务于企业的大数据计算节点的负载均衡方法,其特征在于,包括第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)}2Q=LBMF=σ/Lavg(N);其中,所述σ表示各节点负载标准差;所述Q值用于对均衡进行判断,若Q值小于0.05则认为达到负载均衡,否则不均衡。3.根据权利要求1所述的一种服务于企业的大数...

【专利技术属性】
技术研发人员:王国庆
申请(专利权)人:合肥和钧正策信息技术有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1