Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark本地文件流-容错_Scala_Apache Spark_Spark Streaming - Fatal编程技术网

Scala Spark本地文件流-容错

Scala Spark本地文件流-容错,scala,apache-spark,spark-streaming,Scala,Apache Spark,Spark Streaming,我正在开发一个应用程序,其中每隔30秒(也可以是5秒)会将一些文件放入文件系统中。我必须阅读它,解析它,并将一些记录推送到REDIS 在每个文件中,所有记录都是独立的,我不做任何需要updateStateByKey的计算 我的问题是,如果由于某些问题(例如:REDIS连接问题、文件中的数据问题等),某个文件未完全处理,我想再次重新处理(例如n次)这些文件,并跟踪已处理的文件 出于测试目的,我正在本地文件夹中阅读。此外,我不知道如何断定一个文件已完全处理,并将其标记为已完成(即写入该文件已处理的文

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

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

我的问题是,如果由于某些问题(例如:REDIS连接问题、文件中的数据问题等),某个文件未完全处理,我想再次重新处理(例如n次)这些文件,并跟踪已处理的文件

出于测试目的,我正在本地文件夹中阅读。此外,我不知道如何断定一个文件已完全处理,并将其标记为已完成(即写入该文件已处理的文本文件或数据库)


Spark有一个容错指南。阅读更多:

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()
         }
       }
     )
   }
 )