2015-10-01 55 views
1

假设我想要使用yarn cluster来运行非JVM分布式应用程序(例如.Net based。这是个好主意吗?)。从我至今读,我需要制定一个YARN application是由为非JVM应用程序编写YARN应用程序

  • 用来将作业提交到纱线框纱线客户
  • 纱线ApplicationMaster,这是核心乐团集群中的应用程序。

看起来这两个部分需要使用Yarn API来编写,这些API是作为Jar库提供的。这意味着它们必须使用其中一种JVM语言编写。看起来可以使用REST API编写YARN客户端,是否正确?如果是的话,这意味着客户端可以用任何语言编写(例如.Net上的C#)。但是,对于应用程序主控,这似乎并不是这种情况,它必须使用JVM。正确?

我是Yarn新来的。只是想确认我的理解是否正确。

回答

1

YARN客户端和AppMaster需要用Java编写,因为它们是写入YARN Java API的。 RESTful API https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html实际上是提供您可以从CLI执行的命令。

幸运的是,您的“容器”过程可以创建几乎任何东西。 http://hortonworks.com/blog/apache-hadoop-yarn-concepts-and-applications/用以下报价表示最好:

“这允许ApplicationMaster与NodeManager一起使用,以启动容器,从简单的shell脚本到Unix/Windows上的C/Java/Python进程到完整的虚拟机(例如的KVM)。”也就是说,如果你想要带一个已经是各种分布式应用程序的非Java应用程序(或者甚至是Java应用程序!),那么Slider框架http://slider.incubator.apache.org/可能是你最好的起点。