`
yuexiaodong
  • 浏览: 70548 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HaLoop——适用于迭代计算的Hadoop

阅读更多

文章连接(VLDB‘2010)

原文网址:http://wuyanzan60688.blog.163.com/blog/static/127776163201211553756914/

该文章提出了对Hadoop的修改,使之能够适用于迭代计算,将原生的Hadoop中每一个job中一个map-reduce对改成多个map-reduce对,这样job就可以复用(如果不复用,每一个job完成之后都会把reduce的结果写进Hdfs文件,同时启动新的job时会从Hdfs中读文件,造成I/O压力),实现了在job内就可以控制迭代,同时由于迭代计算本身的特性(不变的数据invariant data会多次复用,而且变的数据比不变的数据要小很多),将invariant data缓存(cache)起来,进一步减少了I/O,使得迭代的效率更高。
下面架构图:


 
与Hadoop比较的四点改变:
1.提供了一套新的编程接口,更加适用于迭代计算;
HaLoop给迭代计算一个抽象的递归公式:


 
2.HaLoop的master进行job内的循环控制,直到迭代计算结束;
     循环控制在Hadoop中是在job间的,因为Hadoop的一个job只能是一个map-reduce对,迭代计算需要多次map-reduce,因此需要启动多个job,而且每个job完成之后需要进行判断,而判断的时候需要从hdfs中读取reduce的结果文件,这样又要启动额外的任务,因此HaLoop将其做了修改,一个job中可以有多个map-reduce对,而且提供了判断接口,这样不需要再启动额外的任务来判断迭代是否结束,下图说明了Hadoop与HaLoop的不同:


 
判断结束有两种方法:
a.设置相邻两次迭代计算的差值门限(threshold)
b.设置迭代的最大次数
3.Task Scheduler也进行了修改,使得任务能够尽量满足data locality(尽量本地计算对HaLoop来说非常重要,否则Cache没有任何用处,还是得耗费网络I/O),除此之外应该让两次迭代的任务尽量使用相同的数据。
下图很清楚地说明了如果能够满足任务使用相同数据时的好处:


 
 如图所示,从整体来看我们可以这样简化过程:输入的是(data input)Ri和L,输出的是(data output)Ri+1.
该job一共有三个map任务,三个reduce任务,分布在三个节点上,对于map任务,在n2,n3中运行,数据都是邻接表(linkage table),这是静态数据(invariant data),而R也即迭代的中间数据则在n1上运行,这是动态数据(variant data)。上一次迭代完成后,进入下一个迭代环节,如果我们依然用n2,n3节点计算L邻接表的数据,而n1计算Ri中的数据,这样我们就不需要再将n2,n3的map结果传给reduce,因为跟上次的结果是一样的,只需要将n1的计算结果传到后面。
4.slave nodes对数据进行cache并index索引,索引也以文件的形式保存在本地磁盘

slave的cache有:

a.Reduce input cache:这样cache之后,如果上次的Map output跟这次的一样,就不用网络I/O,直接从磁盘I/O进内存。
b.Reduce output cache:用于判断迭代的终止。
c.Map input cache:如果这一次的计算是网路I/O得到的数据,则将其cache起来方便下次使用。
 
总结HaLoop的缺点:
1.静态数据与动态数据不能完全分离;
2.迭代的终止条件不能准确判断;
3.抽象度不够高。
  • 大小: 66 KB
  • 大小: 2.9 KB
  • 大小: 36.6 KB
  • 大小: 36.1 KB
分享到:
评论

相关推荐

    Hadoop迭代式计算框架Guagua.zip

    Hadoop 迭代式计算框架 Guagua 是 PayPal 的一个开源机器学习框架 Shifu 的子项目。Guagua 主要解决了模型训练的分布式问题。同时 Guagua 并没有将自己局限在分类模型,Guagua 是一个基于 Hadoop 的迭代式计算框架,...

    分布式系统——从GFS到Hadoop.docx

    分布式系统——从GFS到Hadoop 分布式系统是指一种可以跨越多台计算机、多个网络和多个组织的计算机系统。它可以提供高性能、可靠性和可扩展性的计算能力。分布式系统的应用非常广泛,例如云计算、大数据处理、社交...

    Hadoop课程实验和报告——Hadoop安装实验报告

    Hadoop课程实验和报告——Hadoop安装实验报告 Hadoop是一个开源的大数据处理框架,由Apache基金会开发和维护。它提供了一种可靠、可扩展、可高效的方法来存储和处理大规模数据。在本实验报告中,我们将介绍Hadoop的...

    2013中国大数据技术大会PPT——腾讯大规模Hadoop集群实践

    本次分享主要由腾讯数据中心资深专家翟艳堂进行,聚焦于腾讯建立大规模Hadoop集群的实践过程以及相关技术挑战与解决方案。 首先,建立一个大规模的Hadoop集群需要解决单点问题,以提高系统的可用性和容错能力。腾讯...

    MRSG——简单实用的Hadoop仿真器

    Hadoop是Apache软件基金会的一个开源项目,它为处理和存储大量数据提供了一个分布式计算框架。核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS提供高容错性的数据存储,而MapReduce则处理数据...

    Twister——Hadoop的改良研究

    它将计算过程分为两个阶段:Map(映射)和Reduce(规约),适用于分布式系统。 - **Cloud Technologies**:指基于互联网的各种计算服务的提供方式,通常包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务...

    Hadoop原理——让你快速理解掌握Hadoop

    为何Hadoop是分布式大数据处理的未来?如何掌握Hadoop? Hadoop的历史  始于2002年的apache项目Nutch  2003年Google发表了关于GFS的论文  2004年Nutch的开发者开发了NDFS  2004年Google发表了关于MapReduce的...

    Hadoop进行分布式计算的入门资料

    - HBase:基于Hadoop的分布式NoSQL数据库,适用于实时查询大数据。 - Hadoop优化:包括数据倾斜问题的解决、内存和磁盘使用策略的调整等。 六、实战应用 通过实际项目来巩固理论知识,例如建立一个日志分析系统,...

    面向数据密集型计算Hadoop及其应用研究.pdf

    Hadoop不仅能够整合廉价的PC节点,提供大型计算服务,而且其核心组件——HDFS(Hadoop Distributed File System)和MapReduce并行框架,为用户提供了高效的大规模存储管理和易于使用的并行编程模式。 #### 数据密集...

    guagua:Hadoop MapReduce和Hadoop YARN的迭代计算框架

    瓜瓜瓜Hadoop MapReduce和Hadoop YARN上的迭代计算框架。消息Guagua 0.7.7发布了很多改进。 检查我们的会议入门请访问以获取教程。什么是瓜瓜瓜? Shifu的子项目Guagua是一个基于Hadoop MapReduce和YARN的分布式,可...

    适用于hadoop 3.3.5 3.3.6版本的winutils

    winutils文件合集,Hadoop3.3.5以及3.3.6可用 winutils.exe是在windows系统上安装hadoop时所需要的winutils文件,内附多个版本,支持 hadoop-3.3.5 hadoop-3.3.6

    Hadoop GPU大数据平台架构可行性分析——应用于上海市中职计算机类课程资源.pdf

    将Hadoop应用于中职计算机类课程资源,能够实现跨学校、跨部门的教学资源集中存储,打破信息孤岛,促进资源共享。 GPU(Graphics Processing Unit),图形处理器,原本设计用于加速图形渲染,但近年来因其并行计算...

    window版本下的hadoop 2.7.2版本的hadoop.dll和winutils.exe

    接着,`winutils.exe`是Hadoop在Windows上的实用工具,它执行类似于Linux环境下`hadoop fs`命令的功能。这个工具负责HDFS的交互,包括文件的创建、删除、移动等操作。在Linux中,这些操作由`hadoop fs`命令完成,而...

    基于Hadoop架构的分布式计算和存储技术及其应用.pdf

    Hadoop架构的应用实例——职工工资统计程序,展示了Hadoop在分布式计算领域的实际应用。在这个实例中,通过对职工工资数据进行统计处理,分析了在单节点模式、伪分布模式和完全分布模式下的运行效率。单节点模式是指...

    Gi盘——基于hadoop的分布式网盘项目

    总之,"Gi盘——基于hadoop的分布式网盘项目"是一个结合了Hadoop分布式计算能力的创新应用,它不仅提供了大规模文件存储解决方案,还展示了如何利用开源技术构建复杂系统。通过研究其源码和实践,开发者可以学习到...

    云端的小飞象——Hadoop1

    云端的小飞象——Hadoop1 Hadoop 是一个可靠的分布式计算平台,具有可扩展、经济、效率高和可靠的特点。它可以更容易开发和并行处理大规模数据,未来几年内可能具有与 Google 系统架构技术相同的竞争力。 Hadoop ...

    HADOOP权威指南 第3版 PDF电子书下载 带目录书签 完整版.z01

    设计、构建和管理专用的Hadoop集群——或者在云中运行Hadoop;使用Sqoop从关系型数据库载入数据到HDFS;使用Pig查询语言进行大规模数据处理;使用Hadoop的数据仓库系统Hive分析数据集;利用HBase处理结构化和半结构...

Global site tag (gtag.js) - Google Analytics