一. kafka和flume的整合
任务需求一:利用flume监控某目录中新生成的文件,将监控到的变更数据发送给kafka,kafka将收到的数据打印到控制台
1. 在flume/conf/目录下添加flume-kafka.conf文件

配置文件如下

2. 启动flume和kafka消费者

![]()
3. 传入数据

查看flume和kafka控制台查看结果

![]()
任务需求2:Kafka生产者生成的数据利用Flume进行采集,将采集到的数据打印到Flume的控制台上。
1.在flume/conf/目录下配置kafka.flume.conf文件

2. 启动kafka生产者生产数据

启动flume采集kafka生产的数据

可以看到flume已经成功采集kafka生产者的数据

二. DStream转换
DStream 上的操作与 RDD 的类似,分为 Transformations(转换)和 Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语
无状态转化操作
无状态转化操作就是把简单的 RDD 转化操作应用到每个批次上,也就是转化 DStream 中的每一个 RDD。部分无状态转化操作列在了下表中。
注意,针对键值对的 DStream 转化操作(比如reduceByKey())要添加
import StreamingContext._才能在 Scala 中使用。

Transform
Transform 允许 DStream 上执行任意的 RDD-to-RDD 函数。即使这些函数并没有在 DStream的 API 中暴露出来,通过该函数可以方便的扩展 Spark API。该函数每一批次调度一次。其实也就是对 DStream 中的 RDD 应用转换。
案例演示
1. 编写代码

往9999端口传输数据

2. 运行代码打印9999端口数据

join
两个流之间的 join 需要两个流的批次大小一致,这样才能做到同时触发计算。计算过程就是对当前批次的两个流中各自的 RDD 进行 join,与两个 RDD 的 join 效果相同。
案例演示
1 编写代码运行代码

往9999和8888传输数据

运行结果




















