Hadoop Spark流作业链接时失败

Hadoop Spark流作业链接时失败,hadoop,hdfs,apache-spark,spark-streaming,Hadoop,Hdfs,Apache Spark,Spark Streaming,我在Hadoop集群上运行了几个Spark流式作业,使用HDFS,在“纱线”集群模式下运行,在上一个的输出文件夹中查找输入 job 1 --> reads from folder A outputs to folder A' job 2 --> reads from folder A'outputs to folder B job 3 --> reads from folder B outputs to folder C ... 当独立运行作业时,它们工作得很好 但当他们都在

我在Hadoop集群上运行了几个Spark流式作业,使用HDFS,在“纱线”集群模式下运行,在上一个的输出文件夹中查找输入

job 1 --> reads from folder A outputs to folder A'
job 2 --> reads from folder A'outputs to folder B
job 3 --> reads from folder B outputs to folder C
...
当独立运行作业时,它们工作得很好

但当他们都在等待输入,我将一个文件放在文件夹a中时,job1会将其状态从运行更改为接受,再更改为失败

在使用本地FS时,我无法再现此错误,只有在使用HDFS的集群上运行时才会出现此错误

Client: Application report for application_1422006251277_0123 (state: FAILED)
     INFO Client: 
     client token: N/A
     diagnostics: Application application_1422006251277_0123 failed 2 times due to AM Container for appattempt_1422006251277_0123_000002 exited with  exitCode: 15 due to: Exception from container-launch.
     Container id: container_1422006251277_0123_02_000001
   Exit code: 15

即使Mapreduce忽略以开头的文件。或者,Spark Streaming不会

问题是,当一个文件被复制或处理或其他任何东西时,在HDFSi.e上发现了一个文件的痕迹。SupLoading.txt.tmp Spark的某个文件将尝试处理它

当进程开始读取该文件时,它要么已经消失,要么尚未完成

这就是为什么这些过程一直在爆炸

忽略以开头的文件。或uu或以.tmp结尾修复了此问题

补充:
我们一直在处理连锁工作的问题。似乎只要Spark注意到一个文件,即使它没有完全写入,它也会尝试处理它,忽略所有附加数据。文件重命名操作通常是原子性的,应该可以防止出现问题。

您可以在集群上运行job1,暂时注释掉2和3吗?这样做有效吗?是的,作业在集群上单独运行。这是否是因为饥饿,即作业2-4也尝试消耗作业1的输入?也许一些代码可以提供一些线索?