struts2 调用spark程序——java 程序调用脚本启动spark
来源:互联网 发布:opera 64 for windows 编辑:程序博客网 时间:2024/06/02 04:15
问题描述:在开发web项目结合spark云平台时遇到一个难题,当一个类继承了ActionSupport成为一个action后,在它的method()中不能调用spark程序(会报找不到spark jar包的错误,不知道怎么解决)。
笨拙的解决方案:把spark程序打包成jar文件,写一个脚本,在action的method()中调用这个脚本,运用spark-submit启动spark程序。
脚本代码 ,CRS.sh :
/usr/local/spark/spark-1.0.0-bin-hadoop1/bin/spark-submit \
--class ar.runCourseCF \
--master local[4] \
/root/IdeaProjects/HelloWorld/web/WEB-INF/lib/test.jar
struts2 的 action类:
public class recommendationAction extends ActionSupport
implements ModelDriven<RecommendationArguments> {
private RecommendationArguments recommendation = new RecommendationArguments();
public String execute() throws Exception
{
//脚本路径
String shellPath = "/root/IdeaProjects/HelloWorld/src/CRS.sh";
System.out.println(shellPath);
ShellUtil shell = new ShellUtil();
shell.runShell(shellPath);
return SUCCESS;
}
public RecommendationArguments getModel()
{
return recommendation;
}
}
java运行脚本的代码:
public class ShellUtil {
public void runShell(String shellPath)
{
//String shellPath="/root/IdeaProjects/CRS.sh"; //程序路径
try {
Process process = null;
//添加权限
String command1 = "chmod 777 " + shellPath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();
//用sh CRS.sh执行脚本
String command2 = "sh " + shellPath;
Runtime.getRuntime().exec(command2).waitFor();
}catch(Exception e)
{
System.out.println(e.toString());
}
}
}
参考文档:
http://blog.csdn.net/forlong401/article/details/9139955
- struts2 调用spark程序——java 程序调用脚本启动spark
- Spark安装启动 and 在程序中调用spark服务
- 启动spark程序脚本示例
- Spark Pipe调用外部程序
- spark java程序入门(三)外部程序调用
- java程序方式启动 spark业务程序
- 远程调用Spark平台中的程序
- 本地windows跑Scala程序调用Spark
- 本地windows跑Python程序调用Spark
- JAVA程序调用Perl脚本
- shell脚本调用java程序
- java程序调用linux脚本
- bat脚本调用java程序
- 抛开spark-submit脚本提交spark程序
- Spark 启动脚本——启动总结
- Java开发Spark程序
- java编写spark程序
- java编写spark程序
- eclipse 编译Java的编译环境问题
- ogg 学习
- IE6浮动双边距
- java synchronized详解
- Java NIO系列教程(九) ServerSocketChannel
- struts2 调用spark程序——java 程序调用脚本启动spark
- JNI/NDK开发指南(开山篇)
- Emma for Java 代码覆盖率 资料收集以及使用
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)--http://wenku.baidu.com/view/0732db114431b90d6c85c72c.html
- Matlab 随机数字
- apache本地配置多域名(wampserver本地配置多域名)
- java中的jsp访问并读取mysql或者mssqlserver数据库中的数据(随笔)
- 图文解释XCode常用快捷键的使用
- 实现对特定内容改变字体颜色的TextView