一种Hadoop慢节点自动发现与规避方法及装置制造方法及图纸

技术编号:36556084 阅读:19 留言:0更新日期:2023-02-04 17:10
本发明专利技术公开一种Hadoop慢节点自动发现与规避方法及装置,其中,该方法包括:发现慢节点,将慢节点探测发现的功能打包进大数据应用程序,一起发布提交;在计算方面,规避应用程序执行器调度至慢节点;规避从慢节点拉取数据;停止慢点节上正在执行的任务并重新调度至正常节点。该方法及装置在计算方面,保证后续新增的应用程序执行器不会调度至慢节点;在存储方面,保证应用程序不会从慢节点拉取数据,并且新增的数据入库请求不会存储在慢节点;对于正在慢节点计算的执行器,停止进程,重新调度至正常节点启动应用程序的执行器。至正常节点启动应用程序的执行器。至正常节点启动应用程序的执行器。

【技术实现步骤摘要】
一种Hadoop慢节点自动发现与规避方法及装置


[0001]本专利技术涉及数据源领域,尤其是一种Hadoop慢节点自动发现与规避方法及装置。

技术介绍

[0002]Hadoop一个由Apache基金会所开发的分布式系统基础架构,是一个大数据通用存储和分析平台,一个Hadoop大数据集群由多台服务器组成,在大规模的集群,服务器节点可达到成千上万台。Hadoop集群中慢节点主要表现为网络传输慢、磁盘读写慢。当数据存储在慢节点或者数据处理任务调度至慢节点,数据处理任务的延迟将非常大,性能下降至少十倍以上,同时,由于任务被分隔成大量的子任务在多个节点分布式运行,整个任务的运行效率取决于最后一个子任务运行结果,由于任务一直在运行,导致CPU、内存资源不能释放,影响其他任务的正常运行。严重的还会导致任务执行失败。
[0003]在大规模集群,慢节点难以定位,由于分配在慢节点上的任务在正常运行,在应用程序的日志里面没有任何异常的日志信息,慢节点机器负荷正常,常规的监控手段(例如,监控内存的利用率,CPU的利用率等)也难以发现并进行告警。
[0004]在任务运行非常慢时,需要手工分析大量的Task(任务)的日志,从日志中分析数据处理任务在哪些节点慢,然后再分析节点,对节点的网络的带宽或磁盘的性能执行手工的测试,比如测试磁盘读写IO的性能、验证通过网络进行数据传输的速率、网卡带宽等,才能定位慢节点。整个过程非常耗时,需要消耗大量的人工,同时,即使分析出来了慢节点,也无法阻止新的任务再次调度至这台慢节点,除非手工将这个慢节点的相关服务(比如,NodeManager)下线。NodeManager,每个服务器节点有一个,负责节点资源管理和使用。例如,给计算任务启动一个执行器(executor),并给这个执行器分配内存、CPU等,任务执行完毕后,回收这个执行器。
[0005]常规的慢节点发现的思路是在每个节点,部署慢节点探测的程序,定期对服务器的磁盘和网络等指标进行测试和收集,然后将数据上报至主服务程序。但是,这种方式比较复杂,因为需要在每台机器额外安装监控的程序,如果有机器未安装该程序,将导致异常监测的信息丢失。并且定期监测,需要保证监测程序的稳定性,监测程序如有发生了异常等,还要有相应的处置手段。在对监测程序进行升级时,在每台机器进行程序的升级,维护的成本比较高。
[0006]本文中的机器、节点、服务器、主机都是同一个概念。
[0007]如图1所示,HDFS是分布式文件系统,主要用于存储数据,有两类角色:主节点NameNode和从节点DataNode。
[0008]一个集群最少有1个NameNode,NameNode如果做了主备,则一个集群有两个NameNode节点。
[0009]一个集群有多个DataNode,DataNode主要用于存储数据。
[0010]一份数据集,如果太大,可以在多个DataNode上面进行分布式的存储,每个DataNode存一部分数据。
[0011]NameNode的功能包括:管理HDFS的名称空间、管理数据块映射信息、管理副本策略、处理客户端读写请求。
[0012]DataNode的功能包括:Slave节点,有多个执行数据块读、写。
[0013]如图2所示,YARN是Yet Another Resource Negotiator的简称,集群资源管理系统,负责集群的统一管理调度,具有扩展性、容错。
[0014]大数据集群的Yarn包含两个角色,ResourceManager和NodeManager,ResourceManager是主节点,NodeManager是从节点。
[0015]ResourceManager,整个集群只有一个,负责集群资源的统一管理和调度。
[0016]主要功能:处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度。
[0017]NodeManager,整个集群有非常多的NodeManager,每个节点有一个NodeManager,负责节点资源管理和使用。
[0018]主要功能:单个节点的资源管理和任务管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令。
[0019]如图3所示,Yarn任务的提交流程:
[0020]步骤一、客户端(Client)与ResourceManager通信,申请提交大数据应用程序
[0021]步骤二、ResourceManager接收到客户端的任务提交请求,在集群中选择一个合适的NodeManager节点,准备启动ApplicationMaster。
[0022]步骤三、在选中的NodeManager节点,启动ApplicationMaster
[0023]步骤四、ApplicationMaster与ResourceManager建立双向的通信,ApplicationMaster告知ResourceManager运行这个任务,需要的内存大小、CPU Core的数量,以及需要启动多少个执行器(executor)的进程运行任务。
[0024]步骤五、ResourceManager接收到ApplicationMaster的请求,分配ApplicationMaster的资源请求,ApplicationMaster与分配的NodeManager节点进行通信,要求启动执行器。
[0025]步骤六、NodeManager节点接收到ApplicationMaster的资源申请,在本节点启动1至多个执行器进程,用于运行任务。
[0026]相关概念的解释:
[0027]ApplicationMaster,每个应用程序(任务)有一个,负责应用程序的管理和任务调度;
[0028]详细功能:为应用程序申请资源,并进一步分配给内部任务,任务监控与容错。
[0029]Executor,执行器,任务的执行环境,用于具体任务的执行。

技术实现思路

[0030]为解决现有技术存在的问题,本专利技术提供一种Hadoop慢节点自动发现与规避方法及装置,在计算方面,保证后续新增的应用程序执行器不会调度至慢节点;在存储方面,保证应用程序不会从慢节点拉取数据,并且新增的数据入库请求不会存储在慢节点;对于正在慢节点计算的执行器,停止进程,重新调度至正常节点启动应用程序的执行器。
[0031]为实现上述目的,本专利技术采用下述技术方案:
[0032]一个大数据的应用程序,在执行时,会调度至多个主机执行,在每个调度的主机上,启动1个至多个执行器,分布式地进行数据的处理。
[0033]在本专利技术一实施例中,提出了一种Hadoop慢节点自动发现与规避方法,该方法包括:
[0034]S01、发现慢节点,将慢节点探测发现的功能打包进大数据应用程序,一起发布提交;
[0035]S02、在计算方面,规避应用程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Hadoop慢节点自动发现与规避方法,其特征在于,该方法包括:S01、发现慢节点,将慢节点探测发现的功能打包进大数据应用程序,一起发布提交;S02、在计算方面,规避应用程序执行器调度至慢节点;S03、规避从慢节点拉取数据;S04、停止慢点节上正在执行的任务并重新调度至正常节点。2.根据权利要求1所述的Hadoop慢节点自动发现与规避方法,其特征在于,所述S01包括:S011、用户通过自定义的YARN API提交应用程序,准备启动应用程序的主服务ApplicationMaster;S012、启动ApplicationMaster,申请资源;S013、启动应用程序的执行器,ApplicationMaster接收到分配的资源情况,直接与每个分配的NodeManager通信,启动应用程序的执行器;S014、发现待启动慢节点监测的执行器的节点;S015、启动慢节点监测执行器,ApplicationMaster在慢节点监测的执行器的主机,启动慢节点监测的执行器,在分配的每台服务器上,从HDFS获取相应的jar包,启动慢节点监测的执行器。3.根据权利要求2所述的Hadoop慢节点自动发现与规避方法,其特征在于,所述S011包括:S0111、使用YarnClient的API,提交大数据处理的;S0112、ResourceManager接收到应用程序提交的请求,在大数据集群中选择一台合适的NodeManager节点,准备启动应用程序的主服务ApplicationMaster。4.根据权利要求3所述的Hadoop慢节点自动发现与规避方法,其特征在于,所述应用程序包括:Spark应用程序、MapReduce应用程序。5.根据权利要求2所述的Hadoop慢节点自动发现与规避方法,其特征在于,所述S012包括:S0121、在选中的NodeManager节点,启动ApplicationMaster;S0122、通过YarnClient的API提交任务时,与启动的ApplicationMaster通信,告知需要申请慢节点监测的资源;S0123、ApplicationMaster与ResourceManager建立双向的通信,ApplicationMaster告知ResourceManager需要申请两类资源:运行任务的资源、执行慢节点检测所需要的资源,资源指的是内存大小和CPU的数量;S0124、ResourceManager根据ApplicationMaster提交的资源申请请求,分配1至多个NodeManager节点的主机,用于在这些节点的主机上启动执行器进程。6.根据权利要求5所述的Hadoop慢节点自动发现与规避方法,其特征在于,所述S0124中的执行器包括:应用程序的执行器、慢节点检测的执行器。7.根据权利要求2所述的Hadoop慢节点自动发现与规避方法,其特征在于,所述S014包括:S0141、ApplicationMaster将应用程序拆分为多个子任务,子任务在应用程序的执行
器上运行,每个应用程序执行器的子任务会从各个节点拉取文件数据,进行计算;S0142、每个应用程序执行器将拉取数据的节点信息发送至ApplicationMaster;S0143、Appl...

【专利技术属性】
技术研发人员:张强
申请(专利权)人:中盈优创资讯科技有限公司
类型:发明
国别省市:

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

1