Spark-streaming 和spark-sql 基本概念

Spark-streaming 和spark-sql 基本概念

  1. spark-streaming 是spark体系中一个流式处理的框架

  2. spark-core 是核心的计算引擎,streaming是其中一个功能

  3. streaming与storm的区别:storm数据呈水流状,最基本的单位是 tuple。streaming按照时间做了离散化

  4. spark开发的时候,就是开发 RDD的DAG图,spark-core:RDD开发,DAG图。streaming开发针对,Dstream开发,DstreamGraph。

  5. Dstream是一连串的RDD开发,每一个RDD包含特定时间间隔数据。

  6. RDD的DAG是一个空间概念,Dstream在RDD的基础上加了一个时间纬度

  7. Dstream算子和RDD的算子不一样
    RDD分为transformation和action算子
    Dstream也分为两类算子
    转换算子: transformation
    输出算子:output:saveAsTextFile / saveAsObjectFile。forEachRDD 允许用户对每一批数据对应的RDD本身做任意操作

  8. 时间窗口:统计最近一个小时的PV访问量,要求份十分钟更新一次

  9. spark-streaming的基本架构:master、worker、client
    receiver模式:被动 。direct模式 : 主动 。

spark-sql的基本概念

  1. 和hive的对比,hive存数据的那几个层次:table|partition||bucket。hive的sql最终会转换MapReduct计算框架。spark-sql可以直接调用hive中的数据。

  2. spark-sql主要处理结构化数据

  3. spark-streaming中有一个模板称为Dstream,spark-sql中也有一个新的概念DataFrame–当作一个table(关系型表)

  4. DataFrame数据源多样
    1). SqlContext:外部数据源、HDFS、网络接口、MySQL等
    2).HiveContext 对接hive的数据源
    3).两者存在的关系 HiveContext继承于SqlContext,SqlContext支持的语法更多,HiveContext支持HQL。

  5. Dataframe为了让大数据处理的更简单,可以DataFrame当作一个分布式的table

  6. RDD与Dataframe差异体现
    1).RDD是以行(record)为单位读数据,spark-core在如何优化,都无法了解到Record内部细节,所以无法更深度的优化,这一个缺点直接影响性能提升。
    2).Dataframe的优化是基于列的,包含了每个record中的MetaData信息,dataFrame是基于列的优化,而不像RDD是基于行进行优化。RDD和DataFrame都有懒惰机制(都是基于RDD的抽象)

  7. Spark SQL的处理核心:catalyst工作流程:将sql和dataframe用tree存储
    工作流程:
    1) sql语句通过Parser模块解析为语法树(未解析状态的逻辑树)
    2) 对未解析状态的逻辑树做解析,利用Analyer模块,解析为逻辑树
    3)再进一步进行优化:
    a、基于规则优化:谓词下推(Predicate Pushdown)、常量累加(Constant Folding)和列值裁剪(Column Pruning)
    b、基于代价优化:BroadcastHashJoin还是SortMergeJoin
    4)将计划转换为物理计划
    5)最后计算cost

     catalyst优化引擎,可以使执行时间减少75%
    
  8. 内存管理优化(Tungsten内存管理)
    本质:突破JVM的内存管理限制,分配堆外内存,让spark实现了自己独立的内存管理,完全避免了JVM资源回收引发的性能问题
    Tungsten内存管理是spark有史以来最大改动,目的:提升spark程序对内存和cpu的利用率,让性能达到硬件极限
    1)堆外内存(off-heap)管理内存,降低对象的开销和消除JVM GC延迟
    2) 优化存储,提升CPU自身 L1/2/3的缓存命中率
    3) 优化了Spark SQL代码生成

     JVM的内存管理缺点:
     JVM的内存管理缺点:
     1) 对象空间开销大
     			abcd为例,其实只需要4个字节,但是实际中,Java的String来存储实际用到了48字节
     2) GC带来开销大:主要体现在时间,可能出现假死情况,另外期间没有日志输出,所以排查问题困难
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值