El estado de Sparkstreaming se borra con regularidad.

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.

Supongo que te gusta

Origin blog.csdn.net/qq_39719415/article/details/90599894
Recomendado
Clasificación