Spark简单整理

Spark简单整理

对着下面的问题,问一下自己是否能回答的上来?回答的对吗?

1. 入门,初识Spark

主要参考spark官方文档
RDD Programming Guide

  • 如何开始写一个spark程序,maven中引用什么包,代码中import什么classs
  • 如何读取外部数据,创建RDD
  • 如何对RDD进行transformation,和Action操作
    • 如何传递自定义函数给Spark的Transformation和Action操作函数
    • 执行操作时,注意闭包问题,即变量和函数的生命周期和使用范围
    • Shuffle操作的注意事项
      • 什么时候会触发shuffle?
      • shuffle是什么意思?触发shuffle后代表了什么?
      • 如何优化?
    • RDD的序列化问题
      • 如何序列化?
      • 什么时候需要序列化?
      • 序列化的注意事项
      • 几种序列化级别如何选择?分别对应什么使用场景
        • 这里就选择看美团的这篇基础优化指南如何选择一种最合适的持久化策略章节的内容就可以
        • 优先选择带有_SER后缀的级别
    • 为处理闭包问题中的变量使用范围,引出的2种Shared Variables共享变量
      • broadcast变量
      • accumulator累加器
  • 如何执行写好的spark程序?
    • 多种执行方式
      • 通过spark-submit脚本提交,
      • 通过java api提交
    • spark-submit 如何执行程序?
      • 本地执行
      • 集群执行,参考Spark官方文档通过spark-submit启动程序
        • 提交集群执行时的注意事项
          • 提交与执行的流程是什么样子的?
          • 涉及的组件与概念?
          • 这部分应该可以单独开一个章节

2.了解Spark执行内容及基本概念

  • 程序常用的执行方式
    • 本地执行
    • 集群执行
  • 集群执行时的执行流程,与集群的交互方式?
  • 了解spark程序运行的过程
    • 如何查看运行过程?通过spark的web-ui
    • 如何看懂web-ui展示的内容
      • 组件术语的解释,这部分很重要,对看懂web-ui流程有帮助
        • Job
        • Stage
        • driver
          • SparkContext
        • executor
        • task
  • sprak executor,driver与yarn之间的关系
    • 资源如何分配?

3. Spark调优

  • 基本方向
  • 哪些方面可以操作?
    • 代码方面
      • 复用rdd,重复的数据做cache
    • 集群参数方面,资源分配
    • shuffle
    • 算子的使用
    • 序列化
    • GC
    • 数据倾斜
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 ligongzhao
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信