当前位置: 首页>>hadoop 2.0之YARN>> 阅读正文

YARN/MRv2 MRAppMaster深入剖析—作业生命周期

Category: hadoop 2.0之YARN View: 8,916 Author: Dong
, , ,

  • 评论 (2)
  • 引用通告 (0)
发表评论 发起引用

  • 1楼cnmpeach 回复

    Post: 2013-03-23 12:10

    董学长您好:阅读您的文章是一种享受。但是我还是希望利用有限的空间向您咨询四个问题。1 相比较MRv1, yarn中的container到底是个什么东西,是一个封装了资源的容器? 2. applicationmaster在其自己的container中启动之后,什么时候开始创建job,maptask, reducetask 3. 创建map任务的时候 里面的参数都是 什么意思,或者我从哪里能够学习研究这些参数 4. applicationmaste 在向RM申请资源的时候,根据什么信息知道一个 map或者一个reduce需要多少资源,毕竟这个任务还没有运行过, 谢谢 不吝赐教

    [回复]

    Dong 回复:

    第一个问题:在MRv1中,资源是用slot表示的,管理员可根据实际硬件配置(这个需要管理员有一些经验)为节点设置slot个数,配置了几个slot,就可以运行几个任务,比如一个节点上配置了4个map slot和4个reduce task,则最多可以运行4个map task和4个reduce task。这里的slot数目只是用来限制任务并发的。 而在yarn中,它按照实际资源需求为每个任务分配资源,比如一个任务需要1GB内存,1个CPU,则为其分配对应的资源,而资源是用container表示的,container是一个抽象概念,它实际上是一个JAVA对象,里面有资源描述(资源所在节点,资源优先级,资源量,比如CPU量,内存量等)。当一个applicationmaster向RM申请资源时,RM会以container的形式将资源发送给对应的applicationmaster,applicationmaster收到container后,与对应的nodemanager通信,告诉它我要利用这个container运行某个任务。
    对于第二个问题:对于mapreduce applicationmaster而言,它启动后马上创建job,job的创建过程实际上就是创建map task和reduce task的过程。
    问题三:每个map任务创建时会涉及很多参数,比如map task id,map task对应的数据split(要处理的数据)等,这个你需要看源代码学习。
    问题4:用户提交作业时,需要指定你的map task和reduce task需要多少资源,如果你不指定,yarn会有一个默认值,一旦资源使用量超过了该默认值,任务会被杀掉,进而导致作业运行失败。 一般而言,用户正式运行作业时,会在一个测试集群上测试该作业,进而可以估算出map task和reduce task需要的资源量。这个并不是一个值得考虑的问题,因为在实际运行环境中,默认的资源量适用于99%的作业,可能只有少量作业需要自己显式的设置需要的资源量。比如默认情况下,管理员配置每个map task可使用2GB内存和1个CPU,一个作业的map可能只使用了1GB内存,那剩下的1GB怎么办,那只能算是浪费了,这种问题不太容易解决,我们只能按照任务的资源波峰配置资源使用量。

    [回复]

    cnmpeach 回复:

    好的,非常感谢

    [回复]

  • 2楼肥皂 回复

    Post: 2013-06-17 02:00

    您好。董学长。非常感谢您的技术博客给予我们的指导。我从中学习了很多关于YARN的知识。关于task有个问题希望得到学长的指导。
    1、对于一个task来说可能会对应多个taskAttempt。taskAttempt是task的一个轻量级尝试,但是我研究了源代码后,发现taskAttempt的属性数量比task本身还要多,请问它在哪些地方体现了它的轻量呢?
    还是说taskAttempt并没有比task本身轻量,而是为以免task运行失败,所以需要一个对象来描述这个task,以防止task运行失败后还需要重新生成task,这样工作量就大了。
    谢谢。期待您的回复。

    [回复]

    Dong 回复:

    task是任务的描述,而taskAttempt是任务的运行过程,一个是静态的,一个是动态的,类似程序和进程的概念。

    [回复]

    肥皂 回复:

    谢谢学长。明白了一点。细了的我再去了解下资料。

    [回复]

目前还没有任何Trackbacks和Pingbacks.
发表评论 点击取消评论