[发明专利]映射化简应用的缓存管理方法和装置有效
申请号: | 201410438255.6 | 申请日: | 2014-08-29 |
公开(公告)号: | CN105446896B | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | 曲俊媚;朱朝强;刘亮;庄威 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市金杜律师事务所11256 | 代理人: | 酆迅,陈颖 |
地址: | 美国纽*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 映射 应用 缓存 管理 方法 装置 | ||
本发明涉及分布式文件系统,更具体地,涉及基于分布式文件系统的MapReduce应用的缓存管理方法和装置。
背景技术
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。MapReduce是Google公司提出的一种用于大规模并行编程的软件架构。由于MapReduce架构可以实现大规模数据集(大于1TB)的并行运算,并通过把对数据集的大规模操作分发给网络上的多个节点进行并行运算来实现伸缩性,因此被分布式文件系统广泛应用。概念“Map(映射)”和“Reduce(化简)”及其主要思想,都是从函数式编程语言借来的。当前的MapReduce中间件实现要求应用开发者指定一个Map(映射)函数,用来把一组键值对映射成一些新的键值对(key-value pair),称作中间键值对;此外还要求应用开发者指定一个Reduce(化简)函数,用来对Map函数输出的中间键值对进行进一步处理。
分布式文件系统需要将划分的文件块存储在多个计算节点上,并且需要将每个文件块复制为多个副本保存在不同的计算节点上,对于需要反复迭代的计算,MapReduce执行每一次迭代的计算结果都需要写入分布式文件系统的存储介质,再从存储介质中读取出来作为下一次迭代的输入数据,由此对多个计算节点的文件块进行读写操作时就不可避免地产生了文件传输的网络开销以及计算延时。
现有的基于MapReduce架构的分布式文件系统,例如M3R系统和Spark系统修改现有的MapReduce机制,使处理作业所有的Map任务线程和Reduce任务线程共享一个进程的内存空间,在Hadoop的基础上实现了将数据一次性读入内存中,后续的处理直接在内存中操作,避免频繁访问分布式文件系统的存储介质,使用内容操作代替存储介质访问,然而一旦作业的某个Map任务或Reduce任务失败需要重新计算,该作业其余所有的Map任务和Reduce任务都需要重新计算,耗费大量的计算资源。再例如Tachyon和Redis系统提供了内存缓存管理(Cache Memory Management),MapReduce作业中Mapper处理的结果可以缓存在Tachyon和Redis管理的内存缓存中,后续的迭代计算可以直接从内存缓存中读取计算所需的数据。然而,在Tachyon系统和Redis系统中,按照预先设定的缓存分片大小把分布式文件系统的存储介质中读到内存缓存中,以及按照预先设定的缓存分片大小将每次迭代的中间计算结果写入到内存缓存,预先设定的缓存分片大小不同,读取的性能有比较大的差异,在设定的缓存分片大小比较大的情况,数据读取的速度有可能比从存储介质中读取还慢,同时分配给Mapper的内存缓存就会变少,使得同时能运行的Mapper数目受到限制,影响性能;而在设定的缓存分片大小比较小的情况,需要读取数据的次数增多,由于需要多次的在分布式文件系统中打开/关闭文件,从而产生了较大的处理延时,而且随着剩余内存缓存大小的增加,在同时运行的Mapper数目给定的情况下,会造成部分内存缓存处于闲置状态,造成了浪费。
因此,需要一种基于分布式文件系统的MapReduce应用的缓存大小的配置方法,能够高效地缓存需要迭代计算的MapReduce作业的数据,提高内存缓存的利用率,减小处理延时。
发明内容
根据本发明的一个方面,提供了一种基于分布式文件系统的MapReduce应用的缓存管理方法,包括:接收需要迭代计算的MapReduce作业的Map任务处理请求;获取处理所述Map任务的参数,所述Map任务的参数包括待处理的数据大小、每条数据记录的大小和同时工作的Mapper的数目;获取所述Map任务的缓存分片大小,其中所述Map任务的缓存分片大小是根据所述Map任务的参数和Map缓存分片大小的训练模型计算得到的;将待处理的数据按照所述缓存分片大小从所述分布式文件系统的存储介质读到缓存中用于Map任务处理;将所述Map任务处理的中间结果数据按照所述缓存分片大小写入所述缓存中用于后续的迭代计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410438255.6/2.html,转载请声明来源钻瓜专利网。