spark的主要知识点

1. spark的runtime

这个主要是standalone模式下的master和worker,executor,driver,再加上yarn模式下的resourcemanager和nodemanager。要了解一个spark应用提交的过程,也就是driver和executor在集群管理器内部启动的过程,然后就是rpc过程,各个角色的作用。

高手的问题就是如何给两者分配合适内存,然后executor执行task倾斜的表现及如何解决。这些都在星球里分享过了。然后如何对executor的存活挂掉、新增进行监控告警。executor动态分配表现及带来的问题。

再高级一点就是driver和executor的类加载器及加载类的原理及过程,当然包括rpc,依赖传输,依赖更新,task调度等。

2.spark core

spark core顾名思义就是spark的核心内容,主要是rdd的五大特性及操作算子特点介绍。

DAG的生成,划分,task的调度执行。

数据本地性原理及如何利用和会存在哪些隐患。这也在公众号发过文章和视频了。

reducebykey,groupbykey的区别等等类似算子对比,如何高效使用mappartition,然后foreachPartition与foreach之间的区别及底层实现原理。

广播变量的原理及演变过程,使用场景,使用广播变量一定划算吗?大变量咋办呢?Spark sreaming定期更新广播变量的实现。

累加器的原理及应用场景,累加器使用有陷阱么?

序列化,反序列化,闭包,垃圾回收机制(过期rdd的回收,cache的回收,shuffle数据回收等)。

checkpoint如何在spark core应用呢?何种场景适合?源码系列教程。

并行度相关配置,合理设置可以大幅度提高性能。

3.spark streaming

spark streaming核心原理大家都知道是微批处理。

基于receiver和direct api两种模式的原理,最好读懂源码。

主要是跟Kafka 结合的两种模式的区别。

direct这种模式如何实现仅一次处理。

checkpoint的使用及问题。

如何进行状态管理,upstatebykey,redis,hbase,alluxio作为状态管理存储设备的时候优缺点,然后就是故障恢复会引起的问题及如何避免等等吧。

合理设置批处理时间,为啥批处理时间不能太大,也不能太小,task倾斜,数据倾斜如何解决。

内存申请,kafka分区设置的依据是啥?

并行度问题,彻底理解对spark任务调优帮助很大。

blockrdd和kafkardd的底层区别。

与spark sql和hivecontext结合使用。

广播变量的使用及释放机制等。

动态分区发现和topic发现机制。

executor存活监控,task执行情况监控,未处理队列积累的健康告警(非常重要)等价于对lagsize的监控告警。

小文件问题,星球里文章很详细。根源上避免才是王道。顺便提一句:为啥namenode那么怕小文件呢?

作为7*24小时的应用程序,如何进行监控告警及故障自动恢复~

4.spark sql

在数仓的领域,实时处理都用它,而且structured streaming也逐步依赖于sql引擎了。

常见算子的使用及理解,并行度问题,大小表join,如何广播小表。

join,group by等数据倾斜如何发现及处理方法。

常见的存储格式,parquet,txt,json,orc对比及对性能的影响。

调优大部分也是针对并行度,文件大小,数据倾斜,task倾斜,内存和cpu合理设置等。

5.structured streaming

动态表,增量sql引擎,仅一次处理,维表join等非常好用,watermark,还有就是繁杂的join 机制。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值