- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MapReduce海量数据动态装箱算法研究
基于MapReduce海量数据动态装箱算法研究
摘 要:针对传统装箱算法在处理海量数据时所存在的的运行效率与空间利用率低的问题,在深入研究已有装箱算法的基础上,在分布式系统中定义一种可变大小的箱子,结合动态和静态算法的优势,提出基于MapReduce的动态装箱算法。实验结果表明,针对海量动态数据,运用基于MapReduce的动态装箱算法,结果接近最优解,同时具有很高的处理效率。
关键词:装箱算法;海量数据;分布式系统; MapReduce
DOIDOI:10.11907/rjdk.151567
中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2015)007-0066-05
0 引言
随着云计算和物联网技术的快速发展,数据量呈爆炸性增长。据WinterCorp统计显示,互联网产生的数据量每两年增长3倍[1]。在互联网技术极速发展的背景下,大数据应运而生,人们生活正在逐渐被巨大的数据量所包围。企业经营信息、电子商务商品物流信息、社交网络交互信息、位置信息等数据量远远超越现有企业IT架构和基础设施的承载能力,实时性要求也大大超越现有的计算能力。大数据正在逐渐影响人们的生活方式。同时,大数据的产生给传统的数据管理带来了巨大的挑战。针对海量数据的处理将成为大数据时代必须面对的问题。
Hadoop是一个开源的、具有高可靠性和良好可伸缩性的分布式计算框架,可以对海量数据进行分布式处理,其分布式计算模型MapReduce可以将数据集分割成若干小数据单元,这些小数据单元可以被放置在任何一个节点上进行处理[2]。Hadoop分布式文件系统(HDFS)专门为存储和管理海量数据而设计,其默认存储单元值为64M,但实际应用中所产生的数据大多小于64M,直接处理这些数据将造成内存浪费,降低整个系统性能。
MapReduce是Hadoop分布式框架中的并行计算模型,可以对海量数据进行并行处理。它最早由Google提出并实现,运行在Google的分布式文件系统GPS(Google File System)上。MapReduce将海量数据处理分散到各个分节点共同完成,然后整合所有分节点的中间结果得到最终结果[3]。随着数据量的不断增长,传统算法效率较低,同时造成很大的资源浪费。随着云计算技术的发展,面向云计算平台对传统算法进行改进,可以提高海量数据处理效率。
装箱问题是最经典的组合优化问题之一,将若干大小不同的物件,通过某种填装策略,将所有物件放置到尽可能少的箱子内[4]。该模型在现实生活中广泛应用于各领域,例如资源调度分配、内存动态分配、物流货物装载等。装箱问题的思想也可运用在海量数据处理上,例如在数据存储与传输过程中,将数据进行装箱存储或传输,可很好地提高数据处理效率。随着数据量的指数级增长,传统装箱策略处理的结果已不能满足实际需求,处理效率与空间利用率较低。据此,本文在深入研究已有装箱算法的基础之上,结合动态和静态两种算法的优势,基于MapReduce并行计算模型对海量数据装箱算法进行研究。
1 相关研究
装箱问题算法已经被证明是一个NP难解问题,所以针对装箱问题的研究通常运用近似算法[5,6]。所谓近似算法即该算法可以求得与精确解接近的结果,但不一定得到最优解。装箱算法具有很好的实际应用价值,诸多学着对装箱算法进行了广泛研究。Johnson等[7]证明了装箱问题是个NP难解问题,此后的研究专注于相关近似算法研究。针对一维装箱问题本文给出如下描述:
任意给定一个含有N个数据项目的序列:S1,0≤Si≤1,0≤Si≤1…0≤Si≤1,使得0≤Si≤1。项目不可被切割,这些数据需要存储在内存容量为1的内存“箱”中,目标是尽可能用最少的箱子存储这些数据[8]。假设K为箱容量,则一维装箱问题可以表示为:
∑Si≤Ki(1)
其中,0≤i≤n。目前,针对装箱问题的研究主要集中在物流货物存储和系统中的任务资源分配方面。针对货物存放,将尽可能多的货物存放在尽可能少的不同大小箱子中,并且存放在尽可能小的空间内。在处理海量数据时,将数据进行装箱处理,可以使数据传输次数减少,从而有效提高系统处理效率,降低系统功耗。一维装箱问题的近似算法按照其特征可以分为动态算法和静态算法两种[9, 10]。其中,动态算法主要有首次适应算法(FF First Fit Algorithm)、下次适应算法(NF Next Fit Algorithm)和最佳适应算法(BF Best Fit Algorithm)。而静态算法主要有降序首次适应算法(FFD First Fit Decreasing Algorithm)和降序最佳适应算法(BFD Best Fit Decreasing Algo
原创力文档


文档评论(0)