我制作了spark+hadoopYarn环境,spark提交命令运行良好。因此,我在我的应用程序jar中编写了sparkauncher java代码来实现这一点,但不知怎么的,它不起作用(实际上,计算机迷一开始在旋转,但不像我使用spark submit时那样长)
它似乎工作不好(hadoopwebui中没有应用程序日志,不像spark submit)。使用'sparklauncher'时,我看不到任何错误日志。没有日志消息,我什么也做不了。
这是我到目前为止是怎么做到的。
public class Main {
public static void main(String[] args) {
Process spark = null;
try
{
spark = new SparkLauncher()
.setAppResource("/usr/local/spark/examples/jars/spark-examples*.jar")
.setMainClass("org.apache.spark.examples.SparkPi")
.setMaster("yarn")
.setDeployMode( "cluster")
.launch();
}
catch( IOException e)
{
e.printStackTrace();
}
}
}
用(java-jar-example.jar)执行
1条答案
按热度按时间m0rkklqb1#
一开始我也有同样的问题。我认为主要的问题是你忘记了waitfor()。
此外,在java代码中提取错误消息并处理它(例如,记录它或在调试时检查它)也非常有用。要允许这样做,您应该创建一个streamreader线程,如下所示:
这应该在launch()命令之后,在try块中。希望有帮助