`
langyu
  • 浏览: 883900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

扩展MapReduce架构的一种尝试

阅读更多

        假设有这样一个游戏,一个人来出加减乘除的题目给很多小朋友来做,对每一个小朋友,给他出一道题目,然后让他算好后给你报告答案,你再给他出一道题目,周而复始如此。如果有十个小朋友在算,还可以欣赏小朋友抓耳挠腮的样子;如果有一百个小朋友,每个人都在争着表现,叫嚷着让出题,这个人肯定不堪重负;如果有成千上万个小朋友呢?这个人疯了。

        面对这样的场景,学生时的经验是不断地改进和优化算法;而工作以后的经验是再拽的算法也难以抵挡海量的数据或任务,主要还是增加资源,其次才是优化算法,两者可并行。小朋友越多,相应地增加出题人的数量,也可以缓解每个人的压力。

        与这种场景类似,MapReduce框架也面临类似的问题。如下图:





        越来越多的task tracker会让job tracker很有压力,以至于task tracker有很多时,job tracker不能及时响应请求,很多task tracker就空闲着资源,等待job tracker的response。Job tracker的压力与task tracker的资源浪费问题导致整个集群难于扩展,对外提供服务的能力也相当下降很多。当前Yahoo也受此困扰,正酝酿重构MapReduce架构。我没从这个架构看出对现有问题的改善之处,所以自己来试着分析下解决方法。

        回头来看模拟场景,如果把小朋友按班分,每个班都有一位老师。每位老师从出题人那里得到很多题目,然后让自己班的小朋友来做。这样,出题人的压力在于老师的数量,老师的压力在于班里小朋友的数量。以前小朋友数量增加带给出题人的压力,现在分摊到老师就会成倍地减少。与之前相比,不同处在于引入了老师这个角色。

        如果以同样方式解决MapReduce问题,那“老师”的角色应该由谁来扮演呢?MapReduce的初衷之一是“尽量移动计算而不是数据”。假如数据存放于HDFS这样的文件系统上,移动数据的成本在于机器之间的带宽限制,由此HDFS网络拓扑结构表示机器之间数据移动的等级。MapReduce的map task会去访问HDFS的存储block,如果block在机器本地或是与task tracker 在同一rack内,对执行没有太大影响,否则集群带宽会严重影响task执行效率。

        从上述描述来看,影响task执行的最大网络拓扑范围是rack。一般来说,Rack间的网络带宽肯定要比rack内的带宽小。那我们就以rack来作为“老师”的角色。以此假设,我们在每个rack内将某台机器设为secondary job tracker,负责rack内task资源的调度与分发单位。结构图如下:





        这个结构有两种job tracker:Global job tracker与Secondary job tracker。Global JT负责跨rack的task分发与调度。基本task分配策略是根据job输入数据的block存储情况,只分配block在当前rack内的map task到rack上,分配reduce task 到 map task多的rack上。Secondary JT与Global JT保持着心跳,它管理的map task操作数据要么是node-local,要么是rack-local  cache 级别,不会再有map task跨rack取数据的场景,所以分发策略就很简单了。

        在这个结构下,client提交job的流程就变成:1. Client上传job相关的输入数据到HDFS上,HDFS会将block幅本存放与不同的data node上,这些data node有在同一个rack内,也有跨rack存在的。2. job提交到Global JT后,根据block存储情况(在哪些rack上存在block就往哪些rack的Secondary JT发送map task,且根据rack上map task的多少来分发reduce task)。3. Secondary JT向Global JT汇报当前rack内的资源情况,得到那些自己rack内的task。4. Secondary JT响应本rack内的TT 心跳,然后分配适合的task来执行。

        以rack划分MapReduce架构,也是考虑到HDFS与网络带宽情况的结果。如果每个rack内有15到20台机器,10000台机器差不多可以分布到七八百rack内。Global JT与Secondary JT的并发压力都不大。这样的垂直扩展只是暂时解决了部分问题,但没有从根本上解决job分配程序的压力。

        上述只是我的个人想法,希望得到各位的指正及建议,谢谢!

  • 大小: 50.4 KB
  • 大小: 27.8 KB
  • 大小: 71.4 KB
1
1
分享到:
评论

相关推荐

    一种基于Hadoop架构的并行挖掘算法研究

    基于Hadoop架构,提出一种并行的决策树挖掘算法实现大数据集间的知识挖掘。通过MapReduce并行编程模式实现Hadoop架构下SPRINT并行挖掘算法的频繁项集,解决了大数据集挖掘效率低下,时间消耗量大的问题。SPRINT算法通过...

    基于MapReduce的关系型数据仓库并行查询 (2011年)

    并对MapReduce架构进行了扩展设计,使ChunkDB与MapReduce有效结合,将MapReduce的扩展性、易操作性、高并行性与关系数据库的索引等查询优化优势相结合。实验证明基于MapReduce的ChunkDB数据库能够为数据仓库应用提供...

    分布式资源调度——YARN框架

    我们先看一下MapReduce1.x时所存在的问题:单点故障节点压力大不易扩展MapReduce1.x时的架构如下:分布式资源调度——YARN框架可以看到,1.x时也是Master/Slave这种主从结构,在集群上的表现就是一个JobTracker带多...

    大数据平台构建:YARN的重要概念.pptx

    基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位,通常一个任务不会用完一个槽位的资源,hadoop1分为map slot和reduce slot,而它们之间资源不共享,造成一些资源空闲。 Yarn的诞生背景 一、什么是Yarn ...

    Spark原著中文版

    针对上述的各种问题,本文提出了一种集群计算架构,能够解决这些新出现的数据处理作业 的需求,同时还可以应对越来越大规模的扩展。虽然早期的集群计算系统,如 MapReduce,已经 能够进行批量处理,但我们的架构更...

    Hadoop实战中文版

    第一部分 Hadoop——一种分布式编程框架 第1章 Hadoop简介 1.1 为什么写《Hadoop 实战》 1.2 什么是Hadoop 1.3 了解分布式系统和Hadoop 1.4 比较SQL 数据库和Hadoop 1.5 理解MapReduce 1.5.1 动手扩展一个...

    06hadoop基础架构——好程序

    hadoop是什么 apache hadoop是apache旗下的一套开源的软件平台。 hadoop是一套高可靠的、可扩展的、分布式的计算开源软件。hadoop软件库是一个框架,使用简单的...mapreduce:一种用于并行处理大型数据集的基于YARN的计

    大型分布式网站架构与实践

     如何进行Java应用故障的在线排查,包括一系列排查工具的使用,以及一些实际案例的介绍等。  4.1 在线日志分析 220  4.1.1 日志分析常用命令 220  4.1.2 日志分析脚本 230  4.2 集群监控 239  4.2.1 监控指标 ...

    大数据基础知识入门.pdf

    麦肯锡全球研究所给出的定义是:一 种规模大到在获取、存储、管理、分 析方面大大超出了传统数据库软件工 具能力范围的数据集合,具有海量的 数据规模、快速的数据流转、多样的 数据类型和价值密度低四大特征。...

    yarn入门——yarn的架构及作业调度

    mapReduce存在问题:JobTracker单点故障JobTracker承受的访问压力大,影响系统扩展不支持MapReduce之外的计算框架,比如Storm,spark,flink是一种新的Hadoop资源管理器,它是一个通用资源管理系统,YARN的基本思想是...

    第七章-《大数据导论》大数据处理平台.pdf

    特点:高容错性 + 高扩展性 Apache Hadoop Apache软件基金会下面的一个开源项目 一个分布式系统基础框架 HDFS: Hadoop分布式文件系统,负责数据存储 MapReduce:一种面向大规模数据并行处理的计 算模型和框架,负责...

    Rackspace的日志处理

    要求/问题  通过系统传输Rackspace用户的邮件产生了相当大的“文件”路径信息,它们以各种格式的日志文件的形式存放,每天大约有150 GB。...MapReduce就是一个可以处理这种数据增长的完美系统架构。  简史

    大数据之运维.pptx

    Hive设计特征 Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveQL 语言实现数据查询,所有Hive 的数据都存储在Hadoop 兼容的文件系统(例如,Amazon S3、HDFS)中。Hive 在加载数据过程中不会对...

    大数据分析技术基础教学课件3-大数据处理平台Hadoop.pptx

    Hadoop的特性 Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可扩展的方式进行处理的,它具有以下几个方面的特性: 支持超大文件 快速应对硬件故障 流式数据访问 高容错性 简化的...

    大数据定义.doc

    为了获取大数据中的价值,我们必须选择另 一种方式来处理它。 数据中隐藏着有价值的模式和信息,在以往需要相当的时间和成本才能提取这些信息。 如沃尔玛或谷歌这类领先企业都要付高昂的代价才能从大数据中挖掘信息...

    linux调度模拟器LinSched.zip

    这是有趣的举动,可能代表一种未来趋势。虽然 Linux 支持许多调度类并跨许多工作负荷进行了合理的调度工作,但是对于给定硬件拓扑上的特定工作负荷,它可能不是最理想的。因为 Google 在执行特定任务(例如 ...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    8.1 比较R 和MapReduce 集成的几种方法 8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值 8.3.2 Streaming、R 和完整的MapReduce 技术点58 计算股票的...

    Hadoop实战(第2版)

    join 7.3 本章小结8 结合R 和Hadoop 进行数据统计8.1 比较R 和MapReduce 集成的几种方法8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值8.3.2 Streaming...

    云计算与大数据的关系.pdf

    大数据分 析常和云计算联系到一起,因为实时的大型数据集分析需要像 MapReduce 一 样的框架来向数十、数百或甚至数千的电脑分配工作。大数据需要特殊的技 术以有效地处理大量的容忍经过时间内的数据。适用于大数据的...

Global site tag (gtag.js) - Google Analytics