Spark本地文件流 - 容错

时间:2017-06-02 22:53:10

标签: scala apache-spark spark-streaming

我正在开发一个应用程序,每隔30秒(也可能是5秒),一些文件将被丢弃在文件系统中。我必须阅读它解析它并将一些记录推送到REDIS。

在每个文件中,所有记录都是独立的,我没有进行任何需要updateStateByKey的计算。

我的问题是,如果由于某些问题(例如:REDIS连接问题,文件中的数据问题等)某些文件未完全处理我想再次处理(比如n次)文件并且还要跟踪文件已经处理完毕。

出于测试目的,我正在从本地文件夹中读取。此外,我不确定如何得出结论,一个文件已完全处理并将其标记为已完成(即写入文本文件或db,此文件已处理)

val lines = ssc.textFileStream("E:\\SampleData\\GG")
val words = lines.map(x=>x.split("_"))
words.foreachRDD(
   x=>  {
     x.foreach(           
       x => {
         var jedis = jPool.getResource();
         try{
          i=i+1
           jedis.set("x"+i+"__"+x(0)+"__"+x(1), x(2))
         }finally{
           jedis.close()
         }
       }
     )
   }
 )

1 个答案:

答案 0 :(得分:0)