
公司内部有大量SparkSQL任务,很多任务有数据倾斜或者内存分配不合理的情况,此博客记录下优化脚本过程中出现的一些问题及经验
2、WebUi应用介绍
如上图,SparkSQL Web界面可分为如上5个的模块,以下简单介绍下这5个模块
Jobs
整个spark应用任务的job整体信息(简单来说就是提交给spark的任务)
- User: spark任务提交的用户,用以进行权限控制与资源分配。
- Total Uptime: spark application总的运行时长,如果此Application id 还在运行期间,此处的时间会一直变化。
- Scheduling Mode: application中task任务的调度策略,由参数spark.scheduler.mode来设置,可选的参数有FAIR和FIFO,默认是FIFO。这与yarn的资源调度策略的层级不同,yarn的资源调度是针对集群中不同application间的,而spark scheduler mode则是针对application内部task set级别的资源分配,不同FAIR策略的参数配置方式与yarn中FAIR策略的配置方式相同。
- Completed Jobs: 已完成Job的基本信息,如果想查看job的运行情况,可以点击此选项(一般选择直接点开stage查看,这样比较直观)
- Active Jobs: 正在运行的Job。
- Event Timeline: 用来表示调度job何时启动何时结束,以及Excutor何时加入何时移除(底部有添加及移除的具体时间点)我们可以很方便看到哪些job已经运行完成,使用了多少Excutor,哪些正在运行,是查看excutor增加和移除的图形化界面
Job Details
Jobs 中正在运行(Active Stage)的或者已经结束(Completed Stages) 中Description一栏便可看到具体details信息(job对应的具体信息,可以清楚的看到job被划分为几个stage)
- Staus: 展示Job的当前状态信息。
- Active Stages: 正在运行的stages信息,点击某个stage可进入查看具体的stage信息。
- Pending Stages: 待分配的stages信息,正在排队
- Completed Stages: 已经完成的stages信息。
- Event Timeline: 见上 (Jobs中的Event Timeline)
- DAG Visualization: 有向无环图,当前Job所包含的所有stage信息(stage中包含的明细的transformation *** 作,DAG Scheduler 会根据 RDD 的 transformation 动作,将 DAG 分为不同的 stage,每个 stage 中分为多个 task,这些 task 可以并行运行),以及各stage间的DAG依赖图。DAG也是一种调度模型,在spark的作业调度中,有很多作业存在依赖关系,所以没有依赖关系的作业可以并行执行,有依赖的作业不能并行执行
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)