假设我想使用yarn集群来运行非JVM分布式应用程序(例如.Net。这是一个好主意吗?)。从我到目前为止所读到的内容来看,我需要开发一个由{/ 3>组成的YARN application
似乎需要使用Yarn API编写这两个部分,这些API作为Jar库提供。这意味着必须使用其中一种JVM语言编写它们。似乎可以使用REST API编写YARN客户端,对吗?如果是,则表示客户端可以使用任何语言编写(例如.Net上的C#)。但是,对于应用程序主机,似乎并非如此,它必须使用JVM。正确的吗?
我是YARN的新手。只想确认我的理解是否正确。
答案 0 :(得分:3)
YARN Client和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/可能是最好的起点对你而言。