Dos métodos:
SparkStreaming generalmente se implementa en Linux y se ejecuta 7 * 24. Si la información de estado no se borra, los datos internos serán muy grandes y el punto de control se volverá cada vez más lento. Generalmente, el negocio que cuenta una vez al día se puede liquidar con regularidad.
1: Puede escribir un script de shell para reiniciar la tarea Spark. Use el comando ps para encontrar el número de proceso de Spark-Submit, kill -9, forzar el final del proceso y luego reiniciar.
2: Utilice el método especial de Spark para finalizar periódicamente el programa SparkStreaming y luego llame al script para iniciar el programa SparkStreaming (recomendado).
Como se recomienda, debes darle el código dry goods, jaja, los dry Goods son los siguientes:
escribe así al iniciar el programa sparkStreaming en la función principal (escrito en java, scala también tiene APIs correspondientes, puedes consultar las ideas):
jsc.start();
jsc.awaitTerminationOrTimeout(getTime(System.currentTimeMillis()));
// System.out.println(new Date());
// System.out.println("Spark Application End!");
jsc.close();
/**
*设置具体结束时间,这里我设置的是每天的晚上11点59分结束,然后在下一天的00:00调用
*spark的启动脚本
*/
public static Long getTime(Long currentTimeStamp) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
//具体时间的设置
Date date = new Date(year-1900, month, day, 23, 59, 0);
return date.getTime()-currentTimeStamp;
}
Los amigos pueden escribir un wordCount por sí mismos, incrustar el código en él, abrir mi comentario y ejecutarlo, y luego puedes probar si funciona.