[发明专利]一种MapReduce动态设定slots数量的方法有效
申请号: | 201410004521.4 | 申请日: | 2014-01-06 |
公开(公告)号: | CN103761146B | 公开(公告)日: | 2017-10-31 |
发明(设计)人: | 宗栋瑞;郭美思 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 mapreduce 动态 设定 slots 数量 方法 | ||
1.一种MapReduce动态设定slots数量的方法,其特征在于其具体设定过程为:
首先确定集群节点中CPU的数量,然后根据每个节点中CPU的核心的数量由主从模式框架MapReduce动态设定决定slots数量:根据job队列和TaskTracker节点的资源情况作为输入,其中TaskTracker的资源情况包括CPU的核心数量及节点的内存大小,然后再根据节点的计算能力设定slots数量;
在主-从模式框架MapReduce的主节点上运行JobTracker,其负责监控机群,任务调度;从节点上运行TaskTracker,其负责监控任务执行,报告进度;
确定MapReduce的输入文件或目录是否在文件系统File system上存在,当MapReduce依赖于HDFS时,先将本地的文件上传到HDFS上:Client向JobTracker申请一个Jobid来作为job的标识符;然后MapReduce将job执行资源文件复制到HDFS上;然后再进行作业job提交过程,对输入文件做数据分片;
初始化作业,JobTracker负责分发任务给TaskTracker,TaskTracker定期向JobTracker 发送心跳信息,该信息中携带本节点的资源使用情况,即TaskTracker的状态数据、TaskTracker上task执行状态及希望从JobTracker得到可以执行的task;
在心跳到达时,主节点中的调度发生,若TaskTracker 报告自己有空闲资源, 则JobTracker 使用调度算法选择一个任务发射到该节点运行。
2.根据权利要求1所述的一种MapReduce动态设定slots数量的方法,其特征在于:在设定slots数量时需要设计两个变量,一个是map slot,一个是reduce slot:首先修改TaskTracker中的代码,将map slot数量初步设定为节点中CPU的核心数量,reduce slot数量初步设定为节点中CPU的核心数量的一半;然后在类方法中,根据 slots 数量来决定申请内存的大小,task的总内存分配大小等于map slot数量与TaskTracker中单个map slot内存大小之积再加上resuce slot数量与TaskTracker中单个reduce slot内存大小之积;如果task的总内存分配与集群中相应节点的剩余内存相比小,则将slots设定为该值;如果task的总内存分配与集群中相应节点的剩余内存小,则减少map slot数量或reduce slot数量,交替的较少slots数量,直到满足节点中内存条件为止;这时map slot设定为满足条件的map slot数量,reduce slot数量为满足条件的reduce slot数量;然后通过类方法中两个 TaskLauncher 线程,分别负责启动 Mapper 和 Reduce 任务,在TaskLauncher中传入相应slots数量,然后执行相应的Task,在执行结束后,释放所占有的资源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410004521.4/1.html,转载请声明来源钻瓜专利网。