输入DStreams和接收器
输入DStreams表示从数据源获取输入数据流的DStreams。在NetworkWordCount例子中,lines表示输入DStream,它代表从netcat服务器获取的数据流。每一个输入流DStream和一个Receiver对象相关联,这个Receiver从源中获取数据,并将数据存入内存中用于处理。
输入DStreams表示从数据源获取的原始数据流。Spark Streaming拥有两类数据源:
- 基本源(Basic sources):这些源在StreamingContext API中直接可用。例如文件系统、套接字连接、Akka的actor等
- 高级源(Advanced sources):这些源包括Kafka,Flume,Kinesis,Twitter等等
文件流:通过监控文件系统的变化,若有新文件添加,则将它读入并作为数据流
需要注意的是
① 这些文件具有相同的格式
② 这些文件通过原子移动或重命名文件的方式在dataDirectory创建
③ 如果在文件中追加内容,这些追加的新数据也不会被读取。
注意:要演示成功,需要在原文件中编辑,然后拷贝一份
import org.apache.log4j.{Level, Logger}
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
/**
* @Autho: Administrator and wind
* @Version: 2019/11/22 & 1.0
*
* 文件流
* Streaming监控文件系统变化,把变化类容采集进来
*/
object FileStreaming {
def main(arg