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