【发布时间】:2016-10-08 21:39:09
【问题描述】:
我正在尝试监视 HDFS 中的存储库以读取和处理复制到其中的文件中的数据(将文件从本地系统复制到 HDFS,我使用 hdfs dfs -put),有时它会产生问题:Spark Streaming: java .io.FileNotFoundException:文件不存在:.COPYING 所以我阅读了论坛中的问题和这里的问题Spark Streaming: java.io.FileNotFoundException: File does not exist: <input_filename>._COPYING_
根据我阅读的内容,该问题与在 HDFS 和 Github 上完成复制之前读取文件的 Spark 流有关:
https://github.com/maji2014/spark/blob/b5af1bdc3e35c53564926dcbc5c06217884598bb/streaming/src/main/scala/org/apache/spark/streaming/dstream/FileInputDStream.scala,他们说他们纠正了问题,但仅针对FileInputDStream,正如我所看到的,但我正在使用textFileStream
当我尝试使用FileInputDStream 时,IDE 会引发错误,无法从该位置访问符号。
有谁知道如何过滤掉仍在复制的文件,因为我试过了:
var lines = ssc.textFileStream(arg(0)).filter(!_.contains("_COPYING_")
但这不起作用,这是意料之中的,因为过滤器应该应用于我猜我无法访问的文件进程的名称 如您所见,我在提出问题之前做了很多研究,但没有走运, 有什么帮助吗?
【问题讨论】:
-
在您的代码中的什么时候出现错误?是在流式传输之后还是第一次转换时?
-
@Vale 这个错误不会一直出现,我做了一个 shell 程序,将文件放在 HDFS 中,它与 Spark Streaming 一起运行良好,直到我得到那个错误
标签: scala hadoop spark-streaming