[英]Checkpoint with spark file streaming in java
我想用 spark 文件流應用程序實現檢查點,以處理來自 hadoop 的所有未處理文件,如果在任何情況下我的 spark 流應用程序停止/終止。 我正在關注: 流式編程指南,但未找到 JavaStreamingContextFactory。 請幫幫我,我該怎么做。
我的代碼是
public class StartAppWithCheckPoint {
public static void main(String[] args) {
try {
String filePath = "hdfs://Master:9000/mmi_traffic/listenerTransaction/2020/*/*/*/";
String checkpointDirectory = "hdfs://Mongo1:9000/probeAnalysis/checkpoint";
SparkSession sparkSession = JavaSparkSessionSingleton.getInstance();
JavaStreamingContextFactory contextFactory = new JavaStreamingContextFactory() {
@Override public JavaStreamingContext create() {
SparkConf sparkConf = new SparkConf().setAppName("ProbeAnalysis");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
JavaStreamingContext jssc = new JavaStreamingContext(sc, Durations.seconds(300));
JavaDStream<String> lines = jssc.textFileStream(filePath).cache();
jssc.checkpoint(checkpointDirectory);
return jssc;
}
};
JavaStreamingContext context = JavaStreamingContext.getOrCreate(checkpointDirectory, contextFactory);
context.start();
context.awaitTermination();
context.close();
sparkSession.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
您必須使用檢查點
對於檢查點,使用有狀態轉換updateStateByKey
或reduceByKeyAndWindow
。 在 git-hub 中提供的spark-examples中有大量示例以及預構建 spark 和 spark 源。 具體請參見JavaStatefulNetworkWordCount.java ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.