Spark Streaming

ssc.textFileStream("/Users/dzzxjl/SStest/")

如果是在集群上运行,需要将程序打成JAR包,通过spark主目录下的bin/spark-submit 提交,并不断上传文档到HDFS上指定监听路径下以模拟实时数据流。SparkStreaming需要读取流式的数据,而不能直接从datas文件夹中创建。
如果是本地目录用file:///home/data 你不能移动文件到这个目录,必须用流的形式写入到这个目录形成文件才能被监测到。
在 Spark 官方提供关于集成 Kafka 和 Spark Streaming 的指导文档中,提到了两种方式,

  1. 第一种是 Receiver Based Approach,即通过在 Receiver 里实现 Kafka consumer 的功能来接收消息数据;
  2. 第二种是 Direct Approach, 即不通过 Receiver,而是周期性的主动查询 Kafka 消息分区中的最新 offset 值,进而去定义在每个 batch 中需要处理的消息的 offset 范围。本文采用的是第一种方式,因为目前第二种方式还处于试验阶段。

Streaming + Kafka

在Spark Streaming中消费Kafka数据,保证Exactly-once的核心有三点:
使用Direct方式连接Kafka;自己保存和维护Offset;更新Offset和计算在同一事务中完成;
用spark streaming流式处理kafka中的数据,第一步当然是先把数据接收过来,转换为spark streaming中的数据结构Dstream。
接收数据的方式有两种:

  1. 利用Receiver接收数据
  2. 直接从kafka读取数据

在这里插入图片描述

Structured Streaming

在这里插入图片描述

参考

  1. https://cloud.tencent.com/developer/article/1004821
  2. https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/index.html
  3. https://zhuanlan.zhihu.com/p/51883927
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值