写点什么

Arun Murthy 谈 Apache YARN

  • 2012-12-17
  • 本文字数:3739 字

    阅读完需:约 12 分钟

Apache Hadoop YARN 是一种新的 Hadoop 资源管理器,前不久被提升为高层次的 Hadoop 子项目。InfoQ 有幸在 Hortonworks 与 YARN 的创始人和架构师 Arun Murthy 进行了讨论。

Hortonworks 前不久宣布,Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)已经成为ASF(Apache 软件基金会)Apache Hadoop 的子项目。

“Apache Hadoop YARN 和Hadoop Common(核心库)、Hadoop HDFS(存储)、Hadoop MapReduce(MapReduce 实现)一样,成为了Apache 软件基金会顶级项目 Apache Hadoop 的子项目。在此之前,YARN 只是 Hadoop MapReduce 项目的一部分。”

YARN 最初是为了修复 MapReduce 实现里的明显不足,并对可伸缩性(支持一万个节点和二十万个内核的集群)、可靠性和集群利用率进行了提升。

YARN 实现这些需求的方式是,把 Job Tracker 的两个主要功能(资源管理和作业调度 / 监控)分成了两个独立的服务程序——全局的资源管理(RM)和针对每个应用的应用 Master(AM),这样,一个应用要么是传统意义上的 MapReduce 任务,要么是任务的有向无环图(DAG)。

和 Hadoop 里的其他内容一样,YARN 的资源管理和执行框架都是按主 / 从范例实现的——节点管理器(NM)运行、监控每个节点,并向资源管理器报告资源的可用性状态,和 HDFS 的架构相比,最终为系统里所有应用分配资源的是资源管理器。

特定应用的执行由应用 Master 控制,AM 负责将一个应用分割成多个任务,并和资源管理器协调执行所需的资源。资源一旦分配好,应用 Master 就和节点管理器一起安排、执行、监控独立的应用任务。

YARN 驱动使用“应用提交客户端(Application Submission Clien)”将一个“应用”提交给 YARN 资源管理器。借助“ClientRMProtocol”,客户端先获取一个新的“应用 ID”,然后提交运行“应用”。应用提交的信息里,包含应用 Master 要启动的 Unix 进程信息。提交信息还描述了应用运行要使用的本地文件 /jar,执行需要的实际命令,以及各种 Unix 环境设置等。可以在这里查看编写YARN 驱动的详情。

需要注意的是,YARN 并不会改变MapReduce 编程模型,它只是应用开发人员使用的API。YARN 提供了一种新的资源管理模型和实现,用来执行MapReduce 任务。因此,在最简单的情况下,现有的MapReduce 应用仍然能照原样运行(需要重新编译),YARN 只不过能让开发人员更精确地指定执行参数。

另外,YARN 可用来创建新的框架和除MapReduce 之外的执行模型,可以同时利用Hadoop 集群的计算能力和丰富的数据存储模型,来解决具体的新问题。这些新的框架还可以利用YARN 的资源管理,提供新的应用管理器实现。此外,这种架构还允许多个应用管理器同时存在,共享同一个Hadoop 集群和驻留在集群上的数据。

InfoQ 有幸在 Hortonworks 和 YARN 的创始人和架构师 Arun Murthy 进行了讨论,谈论了 YARN 及其以后的发展方向:

InfoQ:到目前为止,Hadoop 在层数的限制上很与众不同,尤其和应用服务器相比。正因为“薄”,Hadoop 才执行得非常快。那增加一层(容器)会不会减慢 Hadoop 的执行速度?

Arun:我并不这么认为。YARN 只是把不同的功能移到了不同的服务里(或者是服务程序)……比如全局的集群资源管理现在完全是 ResourceManager 的功能,这个功能和应用的生命周期管理明显不同,应用生命周期管理现在则属于 ApplicationMaster 的范畴。

因此,服务和责任变得更加简单,也更容易伸缩了。

事实上,对运行在 YARN 里的 MapReduce 应用来说,性能已经有了显著提升,而且还能进行更多进一步的优化。在这里可以查看详细信息。

InfoQ:Hadoop 和 MapReduce 最强大的特性之一是它们很简单,分离了应用开发人员和框架支持之间的关注点。我在看 YARN API 的例子时,发现它们非常简单,但要求很好地理解一些系统组件。你担心不担心这种复杂性会让 YARN 不那么吸引人?

Arun:正如你所观察到的,我们非常尽力地让 YARN 系统本身(即资源管理器和节点管理器)保持简单。这显著提升了伸缩性和性能,我们模拟过一万个节点的集群。可以这么说,保持接口原生能让强大的技术社区写出高性能的应用。而且,YARN 本身的目标对象略有不同,尤其是和 MapReduce 应用的目标对象相比。我们期望 YARN 能有更多像 MapReduce 和 MPI 一样的简单 API,以便继续给最终用户提供简单的接口。

YARN 为应用开发人员提供了一套简单、功能齐全的 API,而 MapReduce 则为最终用户提供了简单的 API。

InfoQ:目前,为了更好地利用集群,Hadoop 实现推出了很多自定义的输入格式实现。YARN 对这种灵活性有限制么?

Arun:YARN 不会对 MapReduce 的执行造成任何影响。目前在 MapReduce 里实现的所有内容都能继续工作。

InfoQ:你打算给 C++ Mapper/Reducer 实现提供直接支持么?现在的 API 都以 Java 为中心,对重要的 C++ 计算来说,这迫使每个人都要使用 JNI,而这并不是最方便的方法。

Arun:我团队的路线图上还没明确的计划。反过来说,这倒是挺有趣的,不过早期已经有针对 C++ MR API 的实现了,像百度做的(请看这里这里)。

我觉得,如果我们能把较多的社区吸引到 YARN 上来,我们就会看到更多的人参与进来,就有希望看到其他的替选方案。这是 YARN 的关键目标之一,即允许基于 YARN 系统的创新,而不用核心的 Hadoop 社区自己去交付各种可能的创新……

InfoQ:我了解到,YARN 还处于测试状态。什么时候能投入生产环境使用呢?

Arun:从我的角度来说,各种迹象都很乐观。我觉得在今年年底或明年年初,YARN 和包含 HDFS HA 的 hadoop-2.x 就能达到生产级别了。时间马上就要临近了,这很令人兴奋!尤其是我自己花了近两年的时间开发,YARN 才成型。

InfoQ:除了内存,你还打算引入哪些资源呢?什么时候引入?

Arun:很高兴你问这个问题!我已经给 YARN 做了一个补丁,添加了多资源的调度(如你所说,目前只是内存这一种资源)。

我很快就会提交!这个补丁允许调度内存和 CPU。之后,我们会添加更多的资源……比如磁盘或网络 I/O、GPU 等。

InfoQ:除了 MapReduce,你还打算把哪些框架加入 YARN?具体来说,有没有为 Apache Hama 添加应用管理器的计划?

Arun:好几个开源项目都要移植到 YARN,它们现在处于不同的阶段。关于 Hama,我相信 Hama 社区已经在主干上完成必要的工作了,能让 Hama 在 YARN 中运行( HAMA-431 ),我们应该很快就能看到一次发布!

前面已经说过,YARN 的目标是鼓励其他社区移植到 YARN 上,而不一定由我们自己去完成这些工作!

我相信,借 YARN 开放 Apache Hadoop 会驱动大数据 Hadoop 生态系统的进一步创新——YARN 会特别有吸引力,因为它具备以下主要优势:

  • YARN 是和 HDFS 共同设计、共同开发、发布的。它能为各种应用开放 HDFS 上的所有数据(数百 PB)。
  • YARN 是唯一的大规模、目标通用的资源管理框架,特别是它的主要目的是为 MapReduce 等大数据应用解决关键的数据拓扑问题。这能让应用更简单、更高效地处理 TB 和 PB 级别的数据。很高兴能针对这一点再谈谈。
  • 由于 YARN 是 Hadoop 进行处理的得力部分(HDFS 负责存储,YARN 负责处理),它会出现在很多数据中心里,无处不在,并吸引着开发人员,成为核心、开源的平台
  • YARN 决定 Hadoop 的规模,也就是在成千上万个节点上高效工作——这是大数据的另一个关键需求。
  • YARN 本身处理了非常棘手的问题,有资源管理(集群中的免费资源在哪里、我应该把资源分配给谁)、容错(哪些节点启动了,或者停止了等)和伸缩。这能让应用框架开发人员从细枝末节里解脱出来,只关注框架。本质上讲,这和 MapReduce 一样的,也就是说,MR 是最终用户的简单目标,但对应用框架开发人员来说却是重复的内容。

在开源世界里,使用 YARN 的有:

实时处理:

能替换的 MapReduce 的编程范式里,正在和 YARN 整合的有:

YARN 支撑的 Hadoop Wiki

InfoQ:对 Hadoop 生态系统来说,Apache Hadoop YARN 有什么意义呢?

Arun:Hadoop 社区在很多方面都体现出, YARN 对 Hadoop 的开放所起到的作用超越了 MapReduce,我们也有信心为那些想基于 YARN 做项目的其他社区提供支持。

YARN 以前和 MapReduce 很像,完成了资源管理、集群管理、容错、调度等繁重的工作,能让目标社区只专注于应用的细节,包括 MPI、Apache Giraph、Apache Hama、Spark 等在内的这些目标社区都看到了其中的价值,正在与 YARN 进行集成。此外,YARN 会为目标社区开放整个 Hadoop 社区,允许他们访问已经存储在 HDFS 里的数据,对 Hadoop 和其他社区来说,这会是个双赢的局面。

关于受访者

Arun C. Murthy是 Apache 软件基金会 Apache Hadoop 的副总裁,Apache Hadoop PMC 的主席,自 2006 年 Hadoop 项目成立以来,就成为了 Hadoop 的全职贡献者。他也是 MapReduce 项目的领头人,专注于构建新一代的 MapReduce(YARN)。在联合创办 Hortonworks 以前,Arun 曾在 Yahoo! 负责部署在四万两千多台服务器上的所有 MapReduce 代码和配置。实际就是在 Yahoo! 负责将 Apache Hadoop 的 MapReduce 作为一个服务运行。Arun 的 Twitter 是 @acmurthy,你可以 follow 他。

注:文章图片来源于这里

查看英文原文: Interview with Arun Murthy on Apache YARN

2012-12-17 07:324331
用户头像

发布了 151 篇内容, 共 62.0 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

基于 RocketMQ Connect 构建数据流转处理平台

Apache RocketMQ

“奇遇未来”专访:一个小众、专业的产品经理实训品牌

Geek_2d6073

索信达再度打造智能营销标杆案例,这次是头部券商!

索信达控股

板边器件距离不够,导致元器件无法焊接,怎么办?

华秋电子

硬核!阿里大佬都在内卷的SpringBoot从入门到实战笔记

程序知音

Java 编程语言 springboot Java进阶 后端技术

openGemini正式加入openEuler SIG-DB ,携手开展全方面技术创新

openEuler

数据库 Linux 开源 操作系统 openEuler

使用 Athena (Presto) 分析本地 Oracle 数据库导出的数据

亚马逊云科技 (Amazon Web Services)

阿里是如何使用分布式架构的?阿里内部学习手册分享

Java你猿哥

Java 分布式 微服务 分布式架构

瞄准2023教育春招,百度营销多措并举,推出创新型行业营销解决方案

Geek_2d6073

cortex ingester 基于 hash ring 进行 token 管理

jupiter

Prometheus 一致性hash Cortex Mimir

阿里P8裸辞真实心路历程,他底气来源于Java高阶面试合集

Java你猿哥

Java Spring Boot ssm 面经 八股文

windows 系统下 workerman 在同一个运行窗口中开启多个 websocket 服务

极客飞兔

windows 经验分享 websocket workerman 多服务

数据湖选型指南|Hudi vs Iceberg 数据更新能力深度对比

袋鼠云数栈

数据湖

100Wqps短链系统,怎么设计?

小小怪下士

Java 程序员 后端 QPS

优秀软件工程师必备的五大技能,快看你还差什么?

SoFlu软件机器人

【微电平台】-高并发实战经验-奇葩问题解决之旅

京东科技开发者

架构 服务端 js 平台

【干货】常见库存设计方案-各种方案对比总有一个适合你

Java你猿哥

Java 架构 微服务 系统设计 后端

"鸿蒙生态专家面对面"三月专场等你前来!

HarmonyOS开发者

Matlab常用图像处理命令108例(七)

timerring

图像处理

MybatisX整合Spring Boot,真香!

Java你猿哥

Java Spring Boot 后端 mybatis ssm

官宣:OpenDAL 成功进入 Apache 孵化器

Databend

Nacos心跳机制实现快速上下线

做梦都在改BUG

Java Spring Cloud nacos 心跳机制

Spring Boot中如何优雅地实现异步调用?

JAVA旭阳

Java springboot

低代码四大典型使用场景,你都知道吗?

SoFlu软件机器人

深圳.NET线下技术沙龙倒计时一天

MASA技术团队

.net MASA

视频下载软件:MediaHuman YouTube Downloader 中文版

真大的脸盆

Mac 视频下载 Mac 软件 下载视频 视频下载工具

测试的底层逻辑

京东科技开发者

Java 测试 代码 企业号 3 月 PK 榜

前端进阶:在 Web 中使用 C++,我让学妹另眼相看 | 技术分享

LigaAI

c++ 程序人生 前端 webassembly 企业号 3 月 PK 榜

中国半导体市场份额进一步提升,2023年将迎全新发展良机

华秋电子

网易携手昇腾AI打造玉知-悟空图文理解大模型,做更“懂你”的产品

Geek_2d6073

内部开发者门户是什么?

SEAL安全

微服务 企业号 3 月 PK 榜 内部开发者门户 信息碎片化

Arun Murthy谈Apache YARN_开源_Boris Lublinsky_InfoQ精选文章