请选择 进入手机版 | 继续访问电脑版

技术控

    今日:0| 主题:63447
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] PPTV之大数据集群容器化研究

[复制链接]
上帝愛米修 ◎ 发表于 2016-10-1 21:08:03
559 7
【编者的话】如何统一调度两个集群的物理资源,有效节约成本?
  背景

  PPTV作为国内视频领域的领先者,对于大规模流媒体的存储、处理、分发及应用,有着迫切的要求。容器技术及微服务模式的出现,使大规模的研发交付效率大为提高。因此我们基于Docker技术打造了DCOS。集群物理资源的调度用Mesos,容器编排用Marathon,并以此为核心,结合Docker和Nginx,开发了DCOS管理控制台,权限管理模块,统一日志管理模块,IP池管理模块,存储管理模块,并与持续集成平台Jenkins集成,实现应用容器的创建、运行。同时我们也有一个独立于容器平台的大数据集群,主要运行批处理任务,它的资源调度系统是Yarn。在容器平台上运行的业务高峰一般发生在白天或晚上的黄金时间,而批处理任务多数运行在深夜。这样就产生一个需求,如果能够统一调度这两个集群的物理资源,业务繁忙的白天将更多的资源用于容器平台,到了深夜就将资源更多地用于批处理任务,就能更有效的节约成本。但是这两个集群采用了两个不同的资源调度系统Mesos和Yarn,使共享资源成为一个课题。本篇介绍了通过Apache Myriad项目解决这一课题的研究。
  Mesos资源调度简介

   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-1-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 1
  图1是官方的一个例子。Mesos集群由提供资源的Agent、负责调度资源的Mesos master以及使用资源的Framework构成。
  
       
  • Agent将自己的资源(CPU、内存等)报告给Mesos master。   
  • Mesosmaster根据策略将资源提供(offer)给Framework。   
  • Framework再根据自己的策略决定哪个task在哪台Agent执行。   
  • 通过Mesos master通知相应的Agent去执行。  
  这里可以看出Mesos是一个两级调度系统。Mesos本身只对Framework做资源调度,然后由各个Framework根据自己的策略针对task进行资源调度。
  Yarn资源调度简介

   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-2-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 2
  图2是Yarn的资源调度架构图。与Mesos类似由提供资源的NodeManager、负责调度资源的ResourceManager、使用资源的Application(图中的AppMaster)构成。
  
       
  • NodeManager将自己的资源(CPU、内存等)报告给ResourceManager。   
  • Client向ResourceManager提交作业(相当于一个Application)。   
  • ResourceManager为Application启动一个AppMaster。   
  • AppMaster为Application向ResourceManager请求资源。   
  • ResourceManager根据调度策略为Application分配资源,并通知相应的NodeManager去执行task。  
  Yarn也可以说是一个两级调度系统,但是AppMaster只能向ResourceManager请求资源(同时可以设定一些条件),最终哪个NodeManager执行哪个task则是由ResourceManager决定。相比Mesos的Framework自己决定执行task的Agent,AppMaster的调度权限比较低。
  Apache Myriad:集成Mesos&Yarn

  基本思路:把Yarn当作Mesos上的一个Framework来使用。
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-3-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 3
  如图3所示,ResourceManager中的YarnScheduler被MyriadScheduler取代了。MyriadScheduler继承YarnScheduler并实现了MesosFramework Scheduler接口。这样ResourceManager就能够接受Mesos master提供(offer)的资源,并且还具有原来Yarn Scheduler一样的功能。另外Myriad还实现了管理NodeManager的Executor。整个过程是:
  
       
  • Agent 1(黄色文本框中S1) 报告资源给Mesos master。   
  • Mesos master按照策略提供资源(这里是Agent1的一半)给ResourceManager。   
  • ResourceManager接受Mesosmaster提供的资源,要求Mesos master在Agent1上启动NodeManager1(黄色文本框中NM1)。   
  • Agent1启动NodeManager1。   
  • NodeManager 1将自己的资源(来源于之前Mesosmaster的offer)报告给ResourceManager。  
  于是在Mesos集群上建立了一个Yarn集群,其资源来源于Mesosmaster的offer,也就是说Yarn被置于Mesos的管理之下。为了方便Yarn集群动态扩、缩容,Myriad还提供了相应的WebUI和WebAPI。通过这个方案,实现了Yarn集群和Mesos集群共享物理资源。
  实例

   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-4-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 4
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-5-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 5
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-6-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 6
  如图4所示,我们在Mesos上启动了一个叫做“MyriadAlpha”的Myriad Framework,并拥有1个task(“4.4CPU,5.4G内存”),如图5可以从Myriad的WebUI上看到该task,其实该task对应了一个NodeManager。如图6(ResourceManager的WebUI)显示了该NodeManager所在的物理机以及向ResourceManager报告的资源(“4VCore,4G内存”,※配置了1CPU=1VCore)。Mesos和ResourceManager上显示的资源差是NodeManager本身使用的资源。
  接下来我们利用Myriad的WebUI(也提供了WebAPI)对Yarn集群进行扩容。
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-7-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 7
  如图7所示我们将增加2个NodeManager,每个NodeManager向Yarn集群提供“2CPU,2G内存”。
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-8-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 8
  如图8显示增加了2个Task(对应于NodeManager)。
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-9-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 9
  如图9 ResourceManager WebUI显示已有2个NodeManager加入集群,提供的资源均为“2VCore,2GB内存”。
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-10-技术控-调度系统,黄金时间,共享资源,流媒体,控制台

   图 10
  最后如图10 Mesos WebUI上显示了启动的Task(也就是NodeManager)数和已分配的资源。
  总结

  通过Apache Myriad,Mesos可以统一地管理整个数据中心的物理资源,然后由ResourceManager从中获得资源建立Yarn集群并进行扩、缩容。这样本来运行于Yarn上面的应用如MapReduce、Tez、Hive等就能不加改变的运行(还是由Yarn来调度),但是它们使用的物理资源来源于Mesos。另外随着Yarn的Docker Container Executor(DCE) 项目的完成,将实现整个集群的容器化。
  文中为了便于说明这个过程上面的例子是手动进行的,如果利用“Fine-grained Scaling”,Myriad可以根据执行作业需要的实际资源动态的对NodeManager进行扩、缩容(具体细节与上例有差别)。
   作者介绍:郑辉,现PPTV研发中心架构师,专注于大数据、云计算,目前主要研究PPTV大数据平台与容器平台融合的相关技术。之前是日本一家互联网公司的Hadoop技术负责人,同时也参与Apache社区HDFS、Hive项目的开发工作。
   原文链接: 聚力传媒(PPTV)之大数据集群容器化研究
  更多视频行业技术文章,欢迎关注聚力研发中心公众号:
   

PPTV之大数据集群容器化研究

PPTV之大数据集群容器化研究-11-技术控-调度系统,黄金时间,共享资源,流媒体,控制台
下山的和尚 发表于 2016-10-2 03:37:24
不错 支持一个了
回复 支持 反对

使用道具 举报

各种人渣各种装 发表于 2016-10-2 08:16:43
看完帖子,洗洗睡了!
回复 支持 反对

使用道具 举报

容颜出现编译错误 发表于 2016-10-9 11:31:30
楼主,约么?
回复 支持 反对

使用道具 举报

冯艳 发表于 2016-10-12 06:28:48
白富美?高富帅?
回复 支持 反对

使用道具 举报

494248 发表于 2016-11-9 13:42:14
传说中的沙发???卡卡
回复 支持 反对

使用道具 举报

青⌒空 发表于 2016-11-10 13:25:13
占位编辑
回复 支持 反对

使用道具 举报

sseg 发表于 2016-11-17 18:35:32
顶起顶起顶起
回复 支持 反对

使用道具 举报

我要投稿

回页顶回复上一篇下一篇回列表
手机版/c.CoLaBug.com ( 粤ICP备05003221号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表