所用到软件版本如下:
spark:2.3.0.
Spark Streaming中textFileStreaming()函数对同一个文件的更新不会有任何处理,只有对目录这一级的文件的更新进行处理。
Spark Streaming 监控 dataDirectory目录和处理该目录下的任何文件:
1:可以监控一个简单的文件夹,例如“HDFS://NAMENODE:8040/logs/”,在当前路径下的所有文件将在发现时被处理
2:可以提供 POSIX glob pattern,例如“hdfs://namenode:8040/logs/2017/*”.在这一点上, DStream将包含与模式匹配的目录中的所有文件,也就是说,它是目录匹配模式,而不是目录中的文件。
3:所有文件必须有相同的数据格式
4:一个文件的时间段的部分是基于修改时间,而不是创建时间 一旦被处理,当前窗口内的文件的更改不会导致文件被重读。即忽略更新
5:如果通配符用于标识目录,如“hdfs://namenode:8040/logs/2016-*”.将整个目录重命名为与路径匹配将将目录添加到被监视目录的列表中。 在这个文件中的只有修改时间在当前窗口内的文件将包含在流中。
6:调用FileSystem.setTimes()来修复时间戳是一种在后面的窗口中获取文件的方法,即使其内容没有改变。