我试图通过Java代码将带有Spark作业的JAR提交到YARN集群中.我使用SparkLauncher提交SparkPi示例:
Process spark = new SparkLauncher()
.setAppResource("C:\\spark-1.4.1-bin-hadoop2.6\\lib\\spark-examples-1.4.1-hadoop2.6.0.jar")
.setMainClass("org.apache.spark.examples.SparkPi")
.setMaster("yarn-cluster")
.launch();
System.out.println("Waiting for finish...");
int exitCode = spark.waitFor();
System.out.println("Finished! Exit code:" + exitCode);
Run Code Online (Sandbox Code Playgroud)
有两个问题:
我尝试使用Oracle Java 7和8执行提交应用程序.
我想要实现的是构建和安装Oozie 4.2.0,这将使我能够将Spark作业提交给YARN集群.
我通过执行建造发行:oozie-4.2.0/bin/mkdistro.sh -Puber -Phadoop-2 -DskipTests.那个创建oozie-4.2.0-distro.tar.gz包和内部我能找到oozie-4.2.0-sharelib.tar.gz.但是,许多教程在线声明我应该oozie-4.2.0-sharelib-yarn.tar.gz使用YARN.这样的文件不包含在发行包中.如何使构建过程输出YARN版本的sharelibs?
我试图继续使用非YARN版本,但是在提交示例Spark作业(并将job.properties中的HDFS和YARN地址与master属性调整local[*]为yarn)时,我收到了一个错误:
错误:无法加载YARN类.此副本的Spark可能尚未使用YARN支持进行编译.