写点什么

YARN 赋予 Hadoop 新的能力

2013 年 11 月 09 日

近日,Hadoop 2 GA 版发布,借助于 YARN,Hadoop 2 可以创建能在 Hadoop 中本地工作的数据处理应用。

通过将集群资源管理这些关注点从数据处理中分离出来, YARN 使得 Hadoop 能应用于 Map-Reduce 以外的数据处理中。因此,这样大量新项目就有可能实现了。比如 Stinger 和 Tez 这样的项目,它们关注于在某些场合下获得预期的人工交互响应时间 STORM 则致力于流数据处理。Spring 已经宣布了 Spring YARN framework ,那些想编写自己的 YARN 应用的 Java 开发者们可以使用它实现自己的目标。通过寻求 Hadoop 的存储和集群管理平台之间的平衡,数据处理应用现在使得用户能以多种方式与数据进行交互。

我们曾和 Hortonworks 的产品经理 Rohit Bakhshi 谈过 YARN 以及 YARN 给 Hadoop 用户带来的意义。

Rohit 同我们分享了他关于 YARN 的能力简单看法

Hadoop 一直保持着向前的势头,并且越来越多的企业(不仅仅是 web 规模的公司)都想将所有传入的数据保存在 Hadoop 中,因而它们的用户能够使用多种方式与这些数据进行交互:批处理、交互式、实时数据流分析等等。而且更重要的是,他们要能同时执行这些交互,而不会出现在交互时单个应用或查询占用集群的所有资源的情况。 借助于 YARN 将 Apache Hadoop 2 转化成一个多应用的数据系统,Hadoop 社区可以处理 Hadoop 所面临的新一代需求。YARN 在底层就满足了实际的需求,而不是以商业附加组件来处理这些需求 ------ 会使得用户的环境变得更复杂,这样 YARN 就很好地满足了这些企业的需求。

展望未来,企业将能部署多租户的、服务于多个目标的 Hadoop 集群,这些集群可以满足不同组织和应用框架的各项 SLA 的要求。

通过使用 mapred api,YARN 为种种应用提供了二进制的兼容性。但在 Hadoop 1.x 中只是使用 mapreduce api 提供了源代码级的兼容性。Rohit 解释说

在 Hadoop 2.0 中,各个客户端会向运行在 YARN 上的 MapReduce v2 框架提交种种 MapReduce 应用。而在 Hadoop 1.0 中,各个客户端则向 MapReduce v1 框架提交 MapRecude 应用。 这两类 API 都引用开发者可用的 MapRecude 框架来创建 MapReduce 应用。org.apache.hadoop.mapred API 是最早的 API,最广泛地使用在 MapReduce 应用的创建中。任何使用 mapred API 开发的 MapReduce v1 应用都可以提交至运行在 YARN 上的 MapReduce v2 框架,并在该框架中运行。在这种情况下,无须修改该 MapReduce 应用。

而 org.apache.hadoop.mapreduce API 则是 MapReduce 框架的较新的 API 集。在 MapReduce v2 和运行于 YARN 上的 MapReduce v2 之间,这些 API 没有提供二进制的兼容性。现存的 MapReduce v1 应用如果使用了这些 API,则需要使用 Hadoop2.x Hadoop 包进行重编译。重编译后,应用就可以提交至运行在 YARN 上的 MapReduce v2 框架,并在该框架中运行。

读者可以通过这里了解进一步的信息。

升级现有的 Hadoop 集群的过程也是很直接和方便的

Hadoop 和 HDP(包括所有相关的 Apache Hadoop 组件)都支持“就地”升级,可以就地从 HDP 1.3(Hadoop 1.x)升级至 HDP 2.0(Hadoop2.x)。保持了所有已有数据,而同时就地升级了元数据,并无须迁移。配置已从 HDP 1.3 升级至 HDP 2.0,会废弃以前配置中的一些配置属性,同时添加一些新的配置属性。所以已有的 HDP 1.3 配置需要迁移至 HDP 2.0。

当我们问他会否担忧那些过早地在较小数据集上使用 Hadoop 的公司时, Rohit 回答说他有不同的看法

我们以各种方式使用 Hadoop,并且由于它是开源的,我们能看到各种用法。我不会认为这些用法是“过早的”;实际上,很多组织会从一个小的集群开始来使用 Hadoop,这个集群仅仅只有几个节点和几 T 数据,但最终这些环境都不断扩大,直到形成一个数据湖并提供了一个中等的数据架构。小的集群并不是“过早的”—它们是种子。

可以从最新发布的官方声明中获取更多信息。

查看英文原文: YARN Brings New Capabilities To Hadoop

2013 年 11 月 09 日 12:094320

评论

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

软件世界中的个人英雄与团队协作

王泰

团队管理 软件工程 团队协作

在谈判中,你有哪些属于自己的独特的方法和技巧?

Yolanda

Disruptor为何这么快

Rayjun

Java Disruptor

基于Kubernetes的多云和混合云

倪朋飞

云计算 架构 Kubernetes 微服务架构 Service Mesh

我敢说 80% 的程序员都掉进了「老鼠赛跑」的陷阱

非著名程序员

读书笔记 程序员 程序人生 提升认知

Zoom的加密算法,到底有什么问题?

范学雷

算法 编码习惯 产品设计 安全 编程语言

有关Kotlin Companion 我们需要了解到的几个知识点

王泰

Java 编程 kotlin 编程语言

「超级右键」

非著名程序员

macos 程序员 效率工具 软件 Mac

程序员陪娃漫画系列——修龙头

孙苏勇

生活 程序员人生 陪伴 漫画

Facebook在用户增长到5亿时的扩容策略

Rayjun

团队管理 扩容

终极 Shell

池建强

Linux Shell

写作平台使用感受

小天同学

产品 体验 反馈

漫谈哲学与编程

keelii

编程 哲学

知乎开发了一个搜索引擎

红泥小壶

搜索引擎 百度 知乎

敏捷开发 | 张三与需求管理

Worktile

敏捷开发 需求管理

揭秘|为何程序员们能一直保持高收入?

丁长老

学习 程序员 写作 高薪

敏捷(组织)转型的6个准备条件

Bob Jiang

团队管理 敏捷 组织转型

最近的一些人生感悟

小智

人生 哲学

小论互联网项目管理

南方

项目管理 互联网 个人成长 碧海潮生曲

Java并发编程系列——线程

孙苏勇

Java 并发编程 线程

加班能解决交付的期望么?

拖地先生

项目管理 领导力 管理 时间管理

浅谈负载均衡

Damon

Java 负载均衡 Kubernetes 微服务架构 Spring Cloud

理性主义和实证主义

王泰

理性主义 实证主义 哲学 软件工程

聊聊苹果公司技术部门的宫斗和冷战

赵钰莹

程序员 外包 apple

回"疫"录(2):不知者无畏

小天同学

疫情 回忆录 现实纪录

软件工程的史前时代 -- Therac-25 事件

王泰

质量管理 软件工程 软件危机 软件测试

死磕Java并发编程(6):从源码分析清楚AQS

七哥爱编程

Java Java并发 并发编程 AQS

克制文章长度

changyou

随手记备忘录的好习惯

changyou

很不幸,自动化测试永远只能是必要非充分条件

刘华Kenneth

DevOps 敏捷 自动化 测试 金字塔

如何阅读源码?

武培轩

Java 源码 面试 进阶 后端

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

YARN赋予Hadoop新的能力-InfoQ