vlambda博客
学习文章列表

CDP-DC7.1中的 YARN:新增功能和升级方法




背景
该博客文章将介绍客户如何将集群和工作负载迁移到新的 CDP-DC7.1 ,以及此新版本的重点。
CDP DC 7.1是Cloudera Data Platform的本地部署版本。 
该新产品结合了Cloudera Distribution Hadoop和Hortonworks Data Platform Enterprise(分别为CDH和HDP以后)的最佳功能,以及堆栈中的新功能和增强功能。此统一分发是可扩展和可定制的平台,您可以在其中安全地运行多种类型的工作负载。有关CDP DC 7.1的完整视图,请参阅 文档 。我们将重点介绍此版本随附的YARN的新功能,还将概述如何从CDH / HDP版本升级到CDP DC 7.1。

亮点
容量计划程序作为默认计划程序
从YARN角度来看,最重要的更改之一:在CDP DC 7.1中,Capacity Scheduler是默认且唯一受支持的调度程序。如果使用的是Fair Scheduler,则必须将工作负载迁移到Capacity Scheduler。 
您可以阅读此参考资料,以对 度程序 进行比较。
使用容量计划程序的好处
以下是使用Capacity Scheduler时的一些好处:

• 与Ranger集成

• 节点分区/标签

• 改进了在云原生环境中的调度计划,例如更好的bin打包,自动扩展支持等。

• 调度吞吐量的改进

• 全局调度框架

• 一次查找多个节点

从CDP DC 7.1版本开始,Cloudera提供了一种转换工具,称为FS2CS Conversion Utility。使用此工具,您可以将Fair Scheduler配置转换为等效的Capacity Scheduler配置。
我们期待着发布另一篇博客文章,讨论有关如何从Fair Scheduler迁移到Capacity Scheduler的详细信息,以及对Scheduler的深入功能比较。
GPU调度支持
对于许多大数据应用而言,GPU变得越来越重要。深度学习/机器学习、数据分析、基因组测序都具有依赖GPU来实现更高性能的应用程序。在许多情况下,GPU的速度提高10倍。在 YARN-6223 的保护下,对GPU的支持作为Hadoop 3.1的一部分发布。
Cloudera Manager本地支持GPU调度,甚至支持GPU设备自动发现的配置,从而使YARN配置对集群管理员而言非常友好。您可以在Cloudera Manager 文档中 找到有关如何配置GPU调度的详细信息。
FPGA调度支持
与GPU相似,FPGA具有广泛的用例。FPGA的特定应用包括数字信号处理、生物信息学、设备控制器、医学成像、计算机硬件仿真、语音识别、密码学等等。对FPGA的支持是作为Hadoop 3.1的一部分在 YARN-5983 下发布的
Cloudera Manager本身也支持FPGA调度,有关如何使用Cloudera Manager配置YARN的详细信息,请参见此 页面
队列管理器
YARN队列管理器是用于管理Capacity Scheduler配置的图形用户界面。使用YARN Queue Manager UI,可以设置调度程序级别的属性和队列级别的属性。您还可以使用YARN队列管理器UI查看、排序、搜索和过滤队列。
队列管理器的外观如下:
有关队列管理器的更多信息,请参见 使用 YARN 队列管理器 UI 分配资源
Docker on YARN
YARN-3611 支持下,Hadoop 3.1对使用Docker的YARN上的容器化应用程序提供了支持。
Docker容器化提供了隔离,并使您能够并行运行同一应用程序的多个版本。
有关此功能的概述,请参阅Cloudera Runtime官方文档 Docker 支持 YARN
Cloudera Manager具有对YARN Docker容器的原生支持,该支持 在文档 中有详细介绍。为了帮助您进行故障排除,我们准备了一个 详细页面 ,其中讨论了常见的配置和运行时错误。
有很多使用YARN的Docker容器的用例,例如,打包Spark及其依赖关系,您可以利用容器,甚至可以非常轻松地共享这些版本的框架及其依赖关系。请参考我们的博客文章,以更深入地了解Spark和Docker作为YARN Docker 的用例: CDP DataCenter 版本的 Apache YARN 之上,在 Docker 上引入 Docker 上的 Apache Spark
另一个示例是在YARN上运行ML训练工作负载时(例如Tensorflow / PyTorch),它不再需要在物理节点中安装诸如Python虚拟环境,各种Python程序包之类的依赖项,或诸如Tensorflow或PyTorch之类的ML引擎。 相反,您只需将它们打包在Docker映像中,以便Apache Submarine可以在YARN的Docker上运行Tensorflow / Pytorch。 请参阅 YARN 上运行 Apache Submarine
日志改进
日志汇总
Yarn 日志聚合 功能可以让您的任何应用程序的本地日志文件移动到HDFS或基于云的存储上,这取决于您的集群配置。
YARN可以将本地日志安全地移动到HDFS或基于云的存储(例如AWS)上。这样可以使日志的存储时间比在本地磁盘上存储的时间长得多,可以更快地搜索特定的日志文件,还可以选择处理压缩。
滚动日志聚合
在基本日志聚合之上,此版本现在支持 滚动日志聚合
此功能负责按设置的时间间隔聚合日志。该时间以秒为单位,可由用户配置。滚动日志聚合主要用于运行时间较长的应用程序,例如Spark流作业。
我们期待发布另一篇博客文章,讨论CDP DC上YARN的日志聚合的详细信息。
默认情况下,日志聚合支持两个 文件控制器: TFile IFile  。您还可以添加自己的自定义文件控制器。使用CDP DC 7.1,支持将IFile(索引文件)作为默认日志聚合文件控制器。IFile是比TFile更新的文件控制器。在IFile中,对文件建立索引,因此在聚合日志文件中进行搜索比在常规TFile中进行搜索更快。
Hadoop归档
对于具有大量YARN聚合日志的集群,将它们组合到Hadoop归档中以减少小文件的数量可能会有所帮助。这样,对NameNode的压力也减少了。作业历史记录服务器和yarn logs命令仍然可以读取Hadoop归档中的聚合日志。CDH和HDP客户都将获得在Hadoop 2.8中实现的 Mapreduce 日志存档工具 ,特别是 MAPREDUCE-6415
有关Hadoop存档的更多信息,请参见《 Hadoop 归档 指南》
新的YARN UI v2
用户友好的YARN WEB UI2 现在是默认的用户界面。例如,UI2上的“集群概述”看起来像这样。

升级概述
于基本产品可以是CDH或HDP的多个版本,因此将它们与Hadoop发行版以及可升级到CDP DC 7.1一起在表中列出更加容易。  
产品
版本
Hadoop版本
升级到CDP DC 7.1
CDH
5.13.x – 5.16.x
2.6.0
直接使用Cloudera Manager升级
CDH
6.0以上
3.0.0
不支持
CDH
其他版本
不适用
临时升级步骤/手动将数据复制到CDP集群
HDP
2.6.5
2.7.3
支持临时步骤
HDP
3.x
3.1.1
不支持
如果您想访问有关受支持版本的更多详细信息,请参阅受支持的升级路径 。

总结
正如详细讨论的那样,从CDH或HDP升级是利用CDP DC 7.1的新功能的一种前进方式。
借助这个新平台,用户将使用Capacity Scheduler作为默认调度程序,并具有对GPU / FPGA调度和Docker容器的本机支持的全部好处,所有这些功能均已集成到Cloudera Manager中。您还将获得Queue Manager,这是我们用于管理YARN调度程序队列的全新工具。
谈到用户界面,YARN Web UIv2默认情况下也集成到Cloudera Manager中。
我们还讨论了用户可以利用的一些日志记录改进。

致谢
我要感谢Wilfred Spiegelenburg 和Sunil Govindan 进行的计划和集思广益会议,内容涉及如何处理升级的整个主题和可测试性观点。
我还要感谢Budapest Yarn小组的不懈努力,使整个故事得以实现。 
特别感谢Wangda Tan , Wilfred Spiegelenburg , and Rudolf Reti  审查和分享有用的意见。
非常感谢Rahul Buddhisagar 和Paolo Milani 帮助解决了Cloudera Manager相关问题和代码审查。

参考资料
https://blog.cloudera.com/upgrading-clusters-workloads-hadoop-2-hadoop-3/
https://blog.cloudera.com/hadoop-3-blog-series-recap/
https://blog.cloudera.com/introducing-apache-spark-on-docker-on-top-of-apache-yarn-with-cdp-datacenter-release/
原文链接: https://blog.cloudera.com/apache-hadoop-yarn-in-cdp-data-center-7-1-whats-new-and-how-to-upgrade/
作者:Szilard Nemeth