Lecture 9 流式计算简介 及 sparkstreaming

与 流式计算 对应的是 批量计算,流式计算 可以 及时反馈结果,而批量计算 往往伴随着延时。
本节主要总结两点内容:

  • sparkstreaming
  • 消息队列(Kafka)

一、sparkstreaming

首先给出流式计算的一个框架:LAMBADA 架构:

如图:上半部分为 批量计算;下半部分 为 流式计算;共同构成了 LAMBADA 架构;

1、sparkstreaming 架构

sparkstreaming是一个伪实时 系统,其 操作单元 为 mini batch(dstream),而非一个data。

sparkstreaming 3 部分: input -> sparkstreaming(流式计算) -> output;
数据的输入 源 如图 左半部分;
数据的输出 如图 右半部分;
eg:从用户那里获取的日志信息 可以 传入 Kafka,然后,借由Kafka 将日志信息 传给sparkstreaming处理,处理后的数据又可以传入kafka,共下一个sparkstreaming处理:
log -> kafka -> sparkstreaming -> kafka -> …;

sparkstreaming的核心部分是 dstream,其定义如下:

Dstream的来源有两种:1、数据源的输入;2、经 算子转换(dstream) 得到;

Dstream形式有很多种:kafka,twitter,socket,file。其中:
kafka,twitter等类型的dstream,首先要经过Reciever 才能 进行 Executor执行:
dstream -> Reciever -> Executor:
socket,file等类型的dstream,可以直接流入 Executor:
dstream -> Executor;

sparkstreaming中的延时分为:处理延时,和,调度延时 两种,因此,为了减少 流式计算 中的 数据积压 问题,应该使得 数据处理速率 > 数据输入速率;

以下为一个sparkstreaming的code:利用sparkstreaming接收socket数据,将其转为dstream形式的数据,并对其进行分析,以及,upstatebykey操作:[D:/julytest/spark大数据实战/Streaming.scala]

二、消息队列

  • Kafka
  • RocketMq
1、kafka的优点:
  • 实施转发
  • 可作为存储空间使用
  • 吞吐量大(磁盘顺序写 数据)
  • 分布式
  • 支持 离线 和 实时 的 数据服务(存储离线数据后,通过offset,进行实时读取)
2、Kafka的主要部件:
  • producer:给kafka喂数据
  • broker:集群物理机(虚拟机)
  • consumer:消费数据
  • topic:不同类型的消息发往不同的地方(通常这里的topic指一个“路径名”)
  • consumer group:consumer group中的consumer并行处理一个数据,各个consumer之间处理的数据没有重叠;


    为了增加吞吐量,一个Topic(逻辑) 可以 拆分为 几个 partition(物理);
    在这里插入图片描述
    一个info到来后 ----Topic----> 为其分配partition --------------> zookeeper为各个partition找broker的地址 -----------> execute

kafka中的信息一般为2种形式:1、字符串型;2、二进制形式;图片信息 一般不用 kafka传送(too big)。

利用sparkstreaming访问 Kafka数据:
KafkaProducerUtils.java : 构建了一个kafka producer类,用于发送数据;
SparkStreamingKafkaProducer.scala:构建了一个实例,利用kafka producer来发送数据;
SparkStreamingSample.scala 构建了一个实例,利用sparkstreaming来接收kafka发送的数据,并将其转为dstream形式,进行简要分析;
[D:/julytest/spark大数据实战/_]

Note that:kafka的版本号非常重要,在访问别人的kafka数据之前,要先弄清其version;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值