Red de conocimiento informático - Material del sitio web - Cómo reemplazar el script de envío de Spark con código Java

Cómo reemplazar el script de envío de Spark con código Java

Ejemplo: encontré un problema al desarrollar un proyecto web combinado con la plataforma Spark Cloud. Cuando una clase hereda ActionSupport y se convierte en una acción, el programa Spark no se puede llamar en su método () (informará). que no se puede encontrar). Hay un error en el paquete Spark Jar y no sé cómo solucionarlo).

Solución: empaquete el programa Spark en un archivo jar, escriba un script, llame a este script en el método de acción () y use Spark-submit para iniciar el programa Spark.

Código de script, 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

Clase de acción Struts2:

recomendación de clase públicaAcción extiende ActionSupport

implementa ModelDriven {

recomendación privada de RecommendationArguments = new RecommendationArguments();

ejecutar cadena pública() arroja una excepción

{

//Ruta del script

String shellPath = "/root/IdeaProjects/ HelloWorld /src/CRS.sh";

System.out.println(shellPath);

ShellUtil shell = new ShellUtil();

shell.runShell ( shellPath);

devolver ÉXITO;

}

argumentos de recomendación pública getModel()

{

devolver recomendación ;

}

}

Java ejecutando código de script:

clase pública ShellUtil {

ejecución pública vacía (String shellPath)

{

//String shellPath="/root/IdeaProjects/CRS.sh" //Ruta del programa

prueba {

Proceso proceso = null;

//Agregar permisos

Cadena comando1 = "chmod 777 " + shellPath;

proceso = Runtime .getRuntime ().exec(command1);

process.waitFor();

//Utilice sh CRS.sh para ejecutar el script

String command2 = " sh " + shellPath;

Runtime.getRuntime().exec(command2).waitFor();

}catch(Exception e)

{

System.out.println(e.toString());

/s?wd=52014085078