MapReduce 2与纱线应用

MapReduce 2与纱线应用,mapreduce,yarn,hadoop2,Mapreduce,Yarn,Hadoop2,我对如何开发新的MapReduce2应用程序来使用Thread以及如何使用旧的MapReduce2应用程序感到有点困惑 我目前有MapReduce1应用程序,主要包括: 配置要提交到集群的作业的驱动程序(以前的JobTracker,现在的ResourceManager) 映射器+还原器 从一个方面看,我看到用MapReduce1编码的应用程序与MapReduce2/Thread兼容,但需要注意的是,只需重新编译新的CDH5库(我使用Cloudera发行版) 但从另一方面看,我看到了关于以不同

我对如何开发新的MapReduce2应用程序来使用Thread以及如何使用旧的MapReduce2应用程序感到有点困惑

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

  • 配置要提交到集群的作业的驱动程序(以前的JobTracker,现在的ResourceManager)
  • 映射器+还原器
从一个方面看,我看到用MapReduce1编码的应用程序与MapReduce2/Thread兼容,但需要注意的是,只需重新编译新的CDH5库(我使用Cloudera发行版)

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

但对我来说,纱线只是架构和集群如何管理你的MR应用程序

我的问题是:

  • warn
    应用程序是否包括
    MapReduce
    应用程序
  • 我是否应该像编写应用程序一样编写代码,忘记驱动程序 创建纱线客户端,
    应用程序管理员
    等等
  • 我仍然可以使用驱动程序+作业设置开发客户端类吗?
    MapReduce1
    (使用MR2库重新编译)作业是否由
    warn
    以同样的方式,纱线的应用
  • MapReduce1
    应用程序和
    warn
    应用程序在
    warn
    内部管理它们的方式上有什么区别

  • 提前感谢

    纱线只是一个集群管理器

    • 首先,必须为纱线开发应用程序(如果尚未实施)。纱线支持的应用很少。如果您想在纱线上运行新应用程序,请参考

    • 然后可以在纱线上运行相同的MR/Spark/Hama程序

    HADOOP版本1

    JobTracker负责资源管理——管理从属节点——主要功能包括

    • 跟踪资源消耗/可用性
    • 作业生命周期管理——安排作业的各个任务,跟踪进度,为任务提供容错能力
    Hadoop v1的问题 JobTracker负责生成的所有MR应用程序,这是一个单点故障——如果JobTracker出现故障,集群中的所有应用程序都将被杀死。此外,如果集群中有大量应用程序,JobTracker将成为性能瓶颈,以解决可伸缩性和作业管理问题Hadoop v2已经发布

    Hadoop v2

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

    为了与新的资源管理和调度交互,开发了Hadoop纱线mapReduce应用程序——MRv2与mapReduce编程API无关

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

    Hadoop2.x已经包含了MR客户端和AppMaster的代码,程序员只需要关注他们的MapReduce应用程序

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


    请参阅有关架构和相关SE帖子的Apache文档页面:

    纱线应用是否包括MapReduce应用

    纱线支持
    Mapreduce
    应用程序。与Hadoop1.x不同,它还运行Spark作业

    我是否应该像编写纱线应用程序一样编写代码,忘记驱动程序,创建纱线客户机、应用程序管理员等等

    对。您应该忘记所有这些应用程序组件,然后编写应用程序。看一看样品

    我仍然可以使用驱动程序+作业设置开发客户端类吗??MapReduce1(使用MR2库重新编译)作业是否由Thread以与Thread应用程序相同的方式管理

    对。你能行。但是看看这个兼容性

    MapReduce1应用程序和纱线应用程序在纱线内部管理它们的方式上有什么区别

    请参阅此SE帖子:


    这意味着如果我想开发MapReduce应用程序,我必须编写一个客户端和ApplicationMaster类?难道我不能像往常一样编写一个具有作业配置的驱动程序,以便将作业分配到集群吗?在MR1中开发的MR应用程序在纱线中工作时会发生什么情况?关于纱线如何在内部管理它们存在差异?纱线客户端和AM类已经为一些应用程序[1]()开发,如MR、BSP、Hama等。所以,你不需要。对于任何新类型,您都需要。