SparkStreaming与kafka入门学习

本文介绍SparkStreaming的基础概念,包括DStream、批数据、批处理间隔等,并深入探讨了Scala与Java语言中对象序列化的问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客为本人学习备忘之用,如有错误,欢迎指正。谢谢!

SparkStreaming官网入门:

SparkStreaming官网基础概念入门上

SparkStreaming官网基础概念入门下

SparkStreming与kafka官网要点

SparkStreaming 输出众多小文件解决方案

SparkStreaming涉及术语:

DStream,batch data(批数据),batch interval(批处理间隔),windows length(滑动窗口长度),slide Interval(滑动间隔)

batch interval(批处理间隔):采集多长时间的数据为一批数据

windows length(滑动窗口长度):窗口持续时间,决定本次要处理数据的大小。一次处理中要包含多少批的数据,通常为batch interval的倍数

slide Interval(滑动间隔):经过多长时间滑动形成一次新的窗口,默认与批处理间隔大小相同。指经过多长时间会流入新的数据,进行下一批数据的处理

处理原理:把流数据按照批处理大小(batch size)划分成一批批的数据(DStream),每个DStream会被转化成Spark RDD 进行处理。

在基础概念入门上中作者描述此代码会产生不可序列化异常,原因:

Spark是分布式执行引擎,其核心抽象是弹性分布式数据集RDD,其代表了分布在不同节点的数据。Spark的计算是在executor上分布式执行的,故用户开发的关于RDD的map,flatMap,reduceByKey等transformation 操作(闭包)有如下执行过程:

1. 代码中对象在driver本地序列化

2. 对象序列化后传输到远程executor节点

3. 远程executor节点反序列化对象

4. 最终远程节点执行

故对象在执行中需要序列化通过网络传输,则必须经过序列化过程。

对于scala语言开发,解决序列化问题主要如下几点:

  • 在Object中声明对象 (每个class对应有一个Object)
  • 如果在闭包中使用SparkContext或者SqlContext,建议使用SparkContext.get() and SQLContext.getActiveOrCreate()
  • 使用static或transient修饰不可序列化的属性从而避免序列化。 
    注:scala语言中,class的Object

对于java语言开发,对于不可序列化对象,如果本身不需要存储或传输,则可使用static或trarnsient修饰;如果需要存储传输,则实现writeObject()/readObject()使用自定义序列化方法。

 

1.入门 1.1简介 1.2用例 1.3快速入门 1.4生态系统 1.5升级 2. API 2.1生产者API 2.2消费者API 2.3 Streams API 2.4连接API 2.5 AdminClient API 2.6旧版API 3.配置 3.1经纪人配置 3.2主题配置 3.3制片人配置 3.4消费者配置 3.4.1新的消费者配置 3.4.2旧消费者配置 3.5 Kafka Connect配置 3.6 Kafka Streams配置 3.7 AdminClient配置 4.设计 4.1动机 4.2持久性 4.3效率 4.4制片人 4.5消费者 4.6消息传递语义 4.7复制 4。4日志压缩 4.9配额 5.实施 5.1网络层 5.2消息 5.3消息格式 5。4日志 5.5分配 6.运营 6.1基本卡夫卡业务 添加和删​​除主题 修改主题 优雅的关机 平衡领导力 检查消费者的位置 在群集之间镜像数据 扩展您的群集 退役经纪人 增加复制因子 6.2数据中心 6.3重要配置 重要客户端配置 生产服务器配置 6.4 Java版本 6.5硬件和操作系统 OS 磁盘和文件系统 应用程序OS Flush Management Linux Flush Behavior Ext4笔记 6.6监测 6.7 ZooKeeper 稳定的版本 操作化 7.安全 7.1安全概述 7.2使用SSL进行加密和身份验证 7.3使用SASL进行身份验证 7.4授权和ACL 7.5在正在运行的群集中加入安全功能 7.6 ZooKeeper认证 新集群 迁移群集 迁移ZooKeeper Ensemble 8. KAFKA CONNECT 8.1概述 8.2用户指南 运行Kafka Connect 配置连接器 转换 REST API 8.3连接器开发指南 9. KAFKA STREAMS 9.1使用Streams应用程序 9.2编写自己的Streams应用程序 9.3开发者手册 9.4核心概念 9.5架构 9.6升级指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值