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 中元数据包括:
- 创建应用程序的配置信息。
- DStream 的操作逻辑。
- 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、灵活
Spark分布式计算框架之SparkStreaming+kafka相关推荐
- 大数据Hadoop、Hive、Kafka、Hbase、Spark等框架面经
大数据组件 学习路线: 阶段1:学习绿色箭头的知识点: 阶段2:学习红色箭头的知识点: 阶段3:学习蓝色箭头的知识点: 1 Hadoop 1.1 Hadoop1.x与Hadoop2.x的区别 1.2 ...
- 大数据理论与实践5 分布式计算框架MapReduce和Spark
MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...
- 人机交互系统(2.1)——深度学习分布式计算框架
1 为什么需要分布式计算? 在这个数据爆炸的时代,产生的数据量不断地在攀升,从GB,TB,PB到ZB.挖掘其中数据的价值也是企业在不断地追求的终极目标.但是要想对海量的数据进行挖掘,首先要考虑的就是海 ...
- sparkStreaming+kafka SparkException: java.nio.channels.ClosedChannelException异常报错
在运行sparkStreaming+kafka的时候报错 java io报错, 如果broker-list的端口不对或者kafka服务端未启动,会遇到以下错误: Exception in thread ...
- Mars——基于矩阵的统一分布式计算框架
背景 Python Python 是一门相当古老的语言了,如今,在数据科学计算.机器学习.以及深度学习领域,Python 越来越受欢迎. 大数据领域,由于 hadoop 和 spark 等,Java ...
- 139.深度学习分布式计算框架-2
139.1 Spark MLllib MLlib(Machine Learnig lib) 是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器. MLlib是MLBase一部分, ...
- 分布式系列之分布式计算框架Flink深度解析
Flink作为主流的分布式计算框架,满足批流一体.高吞吐低时延.大规模复杂计算.高可靠的容错和多平台部署能力.本文简要介绍了Flink中的数据流处理流程以及基本部署架构和概念,以加深对分布式计算平台的 ...
- Ray - 面向增强学习场景的分布式计算框架
如果关注这个领域的同学可能知道,Ray其实在去年就已经在开源社区正式发布了,只不过后来就一直没有什么太大动静,前段时间也是因为机缘巧合,我又回头学习了解了一下,顺便总结如下: Ray是什么? Ray ...
- 分布式计算框架Hadoop核心组件
Hadoop作为成熟的分布式计算框架在大数据生态领域已经使用多年,本文简要介绍Hadoop的核心组件MapReduce.YARN和HDFS,以加深了解. 1.Hadoop基本介绍 Hadoop是分布式 ...
最新文章
- C语言鹦鹉学舌1,鹦鹉学舌真是简单的学舌吗?为什么他们清晰的知道在哪用哪些词...
- php ismethod,结合php类三种属性说明is_callable和method_exists简单区别
- 8s存储最佳方案_MaxiDi, 意大利:自动化物流解决方案
- String.Format用法
- 【LeetCode】【字符串】题号:412. Fizz Buzz
- getTime()的兼容性(ios)
- 解决ajax跨域的方法原理详解之Cors方法
- 听鬼哥说虐心的2048简化过程
- shell机器人企业微信通知
- SIM900A 开发板连线图
- linux 10247 java_linux kubernetes
- C语言——函数(上)
- Vue3 理解 toRef 和 toRefs 的作用、用法、区别
- android 世界各国英文简写代码 资源文件
- 【比特鹏哥C语言_1.初识C语言】
- 建筑业企业施工劳务资质备案申请条件及劳务分包的种类
- 现货白银怎么换算纸白银
- mysql vacuum_Vacuum 和 Vacuum Full 的处理过程
- java七大排序算法代码
- linux可视化编程,Kylix带你走进Linux可视化编程世界
热门文章
- SpringBoot 亚马逊Simple邮件发送
- ADFS 概念与基本开发介绍 (1)
- 岁月温柔-7 妈妈的烦恼 蛋白粉涨价
- APP 专项测试之兼容性测试
- python,jsonschema, marshmallow, “None is not of type ‘string‘
- 搭建Ethereum以太坊测试网络Rinkeby节点
- winrar v3.8 的注册码
- win10 修复打印机服务器,Windows Update修复了打印机错误(win10/win7)
- AI初学者必看的4个顶级人工智能领域岗位
- 性能测试报告(方案)模板