提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、基本数据源
StreamingContext API中直接提供了对一些数据源的支持,例如文件系统、Socket连接、RDD队列流等,此类数据源称为基本数据源。
(一)文件流
1、读取文件流概述
- 对于从任何与HDFS API(HDFS、S3、NFS等)兼容的文件系统上的文件中读取数据,创建DStream的方式:streamingContext.fileStreamKeyClass, ValueClass, InputFormatClass,Spark Streaming将监视目录dataDirectory并处理在该目录中的所有文件。
- 对于简单的文本文件,创建DStream的方式:streamingContext.textFileStream(dataDirectory)
- 需要注意的是,文件流不需要运行Receiver,因此不需要为接收文件数据分配CPU内核。
2、读取文件流演示
- 在HDFS上创建监测目录
/stream
- 待会儿需要将
/park
目录里的words.txt
与test.txt
文件拷到监测目录/stream
- 基于
jdk1.8.0_161
创建Maven项目 -SparkStreamingDataSourceDemo
将java
目录改成scala
目录
- 创建日志属性文件 -
log4j.properties
- 添加相关依赖和构建插件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.Lee.datasource</groupId>
<artifactId>SparkStreamingDataSourceDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version