Spark分布式计算框架之SparkStreaming+kafka

简介: Spark分布式计算框架之SparkStreaming+kafka

1、SparkStreaming的介绍

SparkStreaming 是流式处理框架,是 Spark API 的扩展,支持可扩展、高吞吐量、容错的实时数据流处理,实时数据的来源可以是:Kafka, Flume,Twitter, ZeroMQ 或者 TCP sockets,并且可以使用高级功能的复杂算子来处理流数据。


2、MR&Storm&Spark&flink的区别

MR:针对数据进行处理,没封装高级的算子,自己实现逻辑,没有SQL的流式处理。


Storm:针对实时数据进行处理,是一条一条的数据进行处理的,封装了高级算子,自己实现逻辑,不实现SQL处理数据,吞吐量小。延迟小。


Spark:在spark中的sparkCore中支持批量数据处理,sparkSQL支持SQL处理,SparkStreaming支持流式处理,SparkStreaming封装了高级算子吞吐量大,但是数据处理的延迟较大。


flink:flink支持批量数据的处理,支持SQL处理流式数据,但flink更偏向于实时处理,,也可以使用开窗函数进行批量数据处理,也封装了高级算子吞吐量大。


3、SparkStreaming处理数据原理

receiver task 是 7*24 小时一直在执行,一直接受数据,将一段时间内接收来的数据保存到 batch 中。假设 batchInterval 为 5s,那么

会将接收来的数据每隔 5 秒封装到一个 batch 中,batch 没有分布式计算特性,这一个 batch 的数据又被封装到一个 RDD 中,RDD 最终封装到一个 DStream 中。


4、Driver HA

因为SparkStreaming是7*24小时运行的,Driver 只是一个简单的进程,有可能挂掉,所以实现 Driver 的 HA 就有必要(如果使用的 Client 模式就无法实现 Driver HA ,这里针对的是 cluster 模式)。Yarn 平台 cluster 模式提交任务,AM(AplicationMaster)相当于 Driver,如果挂掉会自动启动AM。这里所说的 DriverHA 针对的是 Spark standalone 和 Mesos 资源调度的情况下。实现 Driver 的高可用有两个步骤:

第一:提交任务层面,在提交任务的时候加上选项 --supervise,当 Driver挂掉的时候会自动重启 Driver。

第二:代码层面,使用 JavaStreamingContext.getOrCreate(checkpoint 路径,JavaStreamingContextFactory)

Driver 中元数据包括:


1.创建应用程序的配置信息。

2.DStream 的操作逻辑。

3.job 中没有完成的批次数据,也就是 job 的执行进度。

5、kafka介绍

Kafka 是一个高吞吐的分布式消息队列系统。特点是生产者消费者模式,先进先出(FIFO)保证顺序,自己不丢数据,默认每隔 7 天清理数据。消息列队常见场景:系统之间解耦合、峰值压力缓冲、异步通信。


6、kafka的生产者和消费者模型

kafka生产者数据的特点:

1、topic由多个partition组成,partition内部是有序的,partition多是为了并发生产数据。

2、当数据是kv格式的,则按照hash值和partition个数取模决定去哪个分区。

3、非kv格式则按轮询方式。

4、一个partition对应一个brocker,一个brocker管多个partition,数据写入文件中,而不是存在内存,数据默认一周删除,而不是消费完就删除。

kafka消费者数据的特点:

1、每个consumer都有对应的group

2、一个topic中每个partition,只能一组消费者的一个consumer消费使用

3、不同的消费者组之间消费同一组topic组之间不影响。

4、同一个消费者组内的不同消费者消费相同topic时,数据只能消耗一次。

5、同一个topic中每一个分区只能被一个消费者组内同一个消费者连接消费。


7、kafka特点

1、生产者消费者模型

2、高性能、吞吐大

3、持久性:消息直接持久化在普通磁盘上且性能好。

4、分布式:数据副本余,流量负载均衡可扩展

5、灵活


相关文章
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
2075 0
分布式爬虫框架Scrapy-Redis实战指南
|
消息中间件 运维 数据库
Seata框架和其他分布式事务框架有什么区别
Seata框架和其他分布式事务框架有什么区别
690 153
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
1250 4
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
6287 66
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
1108 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
797 8
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
765 2
|
SQL 分布式计算 Java
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
2371 0
|
自然语言处理 分布式计算 算法
使用Spark框架中文分词统计
技术 Spark+中文分词 算法 对爬取的网站文章的关键词进行统计,是进行主题分类,判断相似性的一个基础步骤。例如,一篇文章大量出现“风景”和“酒店”之类的词语,那么这篇文章归类为“旅游”类的概率就比较大。
3035 0
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
777 0

热门文章

最新文章