MapReduce 2 与 YARN 应用程序

标签 mapreduce yarn hadoop2

我对如何开发新的 MapReduce2 应用程序以使用 YARN 以及旧应用程序会发生什么感到有些困惑。

我目前有 MapReduce1 应用程序,主要包括:

  • 配置要提交到集群的作业的驱动程序(以前的 JobTracker 和现在的 ResourceManager)。
  • 映射器 + reducer

  • 一方面,我看到在 MapReduce1 中编码的应用程序与 MapReduce2/YARN 兼容,但有一些警告,只需使用新的 CDH5 库重新编译(我使用 Cloudera 发行版)。

    但从另一方面,我看到有关以不同于 MapReduce 的方式编写 YARN 应用程序的信息(使用 YarnClient、ApplicationMaster 等):

    http://hadoop.apache.org/docs/r2.7.0/hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html

    但对我来说,YARN 只是架构以及集群如何管理您的 MR 应用程序。

    我的问题是:
  • YARN 应用程序是否包括 MapReduce 应用程序?
  • 我应该像 YARN 应用程序一样编写我的代码,忘记驱动程序
    并创建 Yarn 客户端、ApplicationMasters 等等?
  • 我还可以使用驱动程序 + 作业设置开发客户端类吗?MapReduce1(使用 MR2 库重新编译)作业是否由 YARN 管理
    以与 YARN 应用程序相同的方式?
  • MapReduce1 应用程序和 YARN 应用程序在 YARN 内部管理它们的方式方面有什么区别?

  • 提前致谢

    最佳答案

    HADOOP 版本 1

    JobTracker负责资源管理---管理slave节点---主要功能涉及

  • 跟踪资源消耗/可用性
  • 作业生命周期管理---调度作业的单个任务,跟踪进度,为任务提供容错能力。

  • Hadoop v1 的问题
    JobTracker 负责所有产生的 MR 应用程序,它是单点故障——如果 JobTracker 宕机,集群中的所有应用程序都会被杀死。而且,如果集群有大量的应用程序,JobTracker 就会成为性能瓶颈,为了解决可扩展性和作业管理的问题,Hadoop v2 被发布了。

    Hadoop v2

    YARN 的基本思想是将 Job-Tracker 的两个主要职责——即资源管理和作业调度/监控——拆分为单独的守护进程:全局 ResourceManager 和每个应用程序的 ApplicationMaster (AM)。 ResourceManager 和每个节点的从属节点 NodeManager (NM) 形成了新的通用操作系统,用于以分布式方式管理应用程序。

    为了与新的资源管理和调度进行交互,开发了一个 Hadoop YARN mapReduce 应用程序---MRv2 与 mapReduce 编程 API 无关

    应用程序程序员将看不到 MRv1 和 MRv2 之间的区别,MRv2 完全向后兼容---是的 MR 应用程序(.jar),可以在两个框架上运行而无需更改代码。

    Hadoop 2.x 已经包含了 MR Client 和 AppMaster 的代码,程序员只需要专注于他们的 MapReduce 应用程序。

    MapReduce 以前集成在 Hadoop Core 中——唯一与 HDFS 中的数据交互的 API。现在在 Hadoop v2 中它作为一个单独的应用程序运行,Hadoop v2 允许其他应用程序编程框架——例如 MPI——来处理 HDFS 数据。

    关于MapReduce 2 与 YARN 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31044575/

    相关文章:

    hadoop - 我可以将备用名称节点添加到现有的 Hadoop 集群中吗(带有名称节点和辅助名称节点)

    hadoop - 将 Spark 设置为 Hive 的默认执行引擎

    java - 使用 MRUnit 测试多个输出

    hadoop - 即使在MRv1上运行,也试图连接到yarn

    hadoop - YARN应用程序如何估算所需资源

    mysql - Sqoop 导出到 Aurora RDS 的速度非常慢

    java - hadoop 中的多重输出格式

    file - 比较两个大文件以调和财务交易

    hadoop - 字符串连接在 pig 中不起作用

    hadoop - 在Apache Spark中如何对RDD进行分布式计算?