Двумя способами:
SparkStreaming обычно развертывается в Linux и работает под управлением 7 * 24. Если информация о состоянии не очищена, внутренние данные будут очень большими, а контрольная точка будет становиться все медленнее и медленнее. Как правило, бизнес, который считается один раз в день, можно очищать регулярно.
1: Вы можете написать сценарий оболочки для перезапуска задачи Spark.Используйте команду ps, чтобы найти номер процесса для spark-submit, kill -9 принудительно завершите процесс, а затем перезапустите.
2: Используйте специальный метод spark для периодического завершения программы sparkStreaming, а затем вызовите сценарий для запуска программы sparkStreaming (рекомендуется).
Поскольку это рекомендуется, вы должны предоставить код сухих товаров, ха-ха, сухие товары выглядят следующим образом:
напишите так при запуске программы sparkStreaming в основной функции (написано на java, у scala также есть соответствующие API, вы можете обратиться к идеям):
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;
}
Друзья могут сами написать wordCount, встроить код, открыть мой комментарий и запустить его, а затем вы сможете проверить, работает ли он.