本篇内容介绍了“怎么用java提交一个Spark应用程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
第一种方式
首先用vim打开一个文件,MyLauncher.java
编写代码如下:
import org.apache.spark.launcher.SparkAppHandle;
import org.apache.spark.launcher.SparkLauncher;
import java.util.HashMap;
public class MyLauncher {
public static void main(String[] args) throws Exception {
HashMap<String,String> map = newHashMap<String, String>();
map.put("HADOOP_CONF_DIR","/home/hadoop/conf");
map.put("YARN_CONF_DIR","/home/hadoop/conf");
map.put("SPARK_CONF_DIR","/home/hadoop/spark/conf");
new SparkLauncher(map)
.setAppResource("/data/newStreaming/uesc-analyzer.jar")
.setMainClass("ucloud.UESBash.testSchema")
.setMaster("yarn-cluster")
.setConf(SparkLauncher.DRIVER_MEMORY, "2g")
.setVerbose(true).startApplication();
Thread.sleep(100000);
// Use handle API to monitor / control application.
}
}
接着,进行编译
javac -cp /home/hadoop/spark/lib/spark-assembly-1.6.0-hadoop2.6.0-cdh6.4.9.jarMyLauncher.java
然后提交执行
java -cp/home/hadoop/spark/lib/spark-assembly-1.6.0-hadoop2.6.0-cdh6.4.9.jar:.MyLauncher
这样就可以在yarn的界面上看到运行情况了。
注释:可能你比较奇怪我为啥在那加了个停顿,因为正常情况下我们要进行一些其它操作监控Spark应用而不是直接退出,直接退出可能会导致提交还没完成退出,以至于应用程序不能被提交了。
当然,还有另外一种方式,但是不建议使用,上面采用的这种方式呢可以更好地监控我们Spark程序的状态。
第二种方式
import org.apache.spark.launcher.SparkAppHandle;
import org.apache.spark.launcher.SparkLauncher;
import java.util.HashMap;
public class MyLauncher {
public static void main(String[] args) throws Exception {
HashMap<String,String> map = newHashMap<String, String>();
map.put("HADOOP_CONF_DIR","/home/hadoop/conf");
map.put("YARN_CONF_DIR","/home/hadoop/conf");
map.put("SPARK_CONF_DIR","/home/hadoop/spark/conf");
Process spark = new SparkLauncher(map)
.setAppResource("/data/newStreaming/uesc-analyzer.jar")
.setMainClass("ucloud.UESBash.testSchema")
.setMaster("yarn-cluster")
.setConf(SparkLauncher.DRIVER_MEMORY, "2g")
.setVerbose(true).launch();
// Use handle API to monitor / control application.
spark.waitFor();
}
}
第二种方式是启动了一个子进程来加载提交应用程序。
“怎么用java提交一个Spark应用程序”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。