纱线如何决定要启动哪种类型的应用程序主



我提到了此链接,并对纱线的工作方式有公平的了解。纱线能够使用多租户应用程序运行,例如MR,Spark等。

关键点是应用程序特定的ApplicationMaster (AM)

当客户将作业提交给资源管理器时,资源管理器如何知道它是什么样的应用程序(MR,SPARK(并因此启动适当的应用程序管理员?

谁能帮助RM知道要提交什么样的工作?

编辑:

这个问题是:RM如何知道已提交了哪种工作,而不是纱线或先生或Spark之间的任何关系。

rm收到一份工作,因此必须启动一个运行应用程序特定应用程序管理员的第一个容器,因此RM如何知道已提交了哪种工作?

这是我要问的问题,这不是相同的重复。

纱线不需要/不想知道在其上运行的应用程序的类型。它提供了资源,这是在其上运行的应用程序的关注点,以了解如何从纱线中获取资源以运行它需要运行的内容(Yarn的体系结构并不建议 Yarn想要知道任务如何运行什么/它(。

这里有更多有关如何编写与纱线集成的组件的信息。

我从2步纱线应用程序写作中了解,需要编写纱线客户端以及纱线应用程序主。

  • 应用程序客户端确定要以应用程序主的运行:

    // Construct the command to be executed on the launched container 
    String command = 
        "${JAVA_HOME}" + /bin/java" +
        " MyAppMaster" + 
        " arg1 arg2 arg3" +
        ...
    

    其中 MyAppMaster是特定于应用程序的主类。

  • 第二件事是在容器中运行的任务,请注意应用程序Master运行容器(运行实际任务执行者(的命令类型:

    // Set the necessary command to execute on the allocated container 
    String command = "/bin/sh ./MyExecShell.sh";
    

您可以看到,这些是对任务的了解(或使用问题单词的应用程序类型(的代码。在同一页面上,您可以看到如何将应用程序提交给纱线。

现在将其放在Spark:Spark拥有自己的应用程序主类(在此处检查或整个软件包(。这些框架与YARN提供内置集成,因为它们只是Spark支持的资源经理之一。

,该框架提供了内置的集成。 。

如果您要编写自己的纱线客户端,例如执行Python代码,那么您必须按照YARN Application Client/Master Document步骤操作步骤,以便将YARN提供命令,配置,资源,资源,以及用于执行您应用程序的特定逻辑或任务的环境。

相关内容

  • 没有找到相关文章

最新更新