通过可视化途径理解你的Spark应用程序.PDFVIP

  • 4
  • 0
  • 约4.74千字
  • 约 10页
  • 2018-07-15 发布于天津
  • 举报

通过可视化途径理解你的Spark应用程序.PDF

通过可视化途径理解你的Spark应用程序 Spark大数据博客 - 通过可视化途径理解你的Spark应用程序 在过去,Spark UI一直是用户应用程序调试的帮手。而在最新版本的Spark 1.4 中,我们很高兴地宣布,一个新的因素被注入到Spark UI——数据可视化。在此版本中,可视化带来的提升主要包括三个部分: 1、Spark events时间轴视图 2、Execution DAG 3、Spark Streaming统计数字可视化 我们会通过一个系列的两篇博文来介绍上述特性,本次则主要分享前两个部分——Spark events时间轴视图和Execution DAG。Spark Streaming统计数字可视化将在下一篇博文中解释。 Spark events时间轴视图 从Spark 初期版本至今,Spark events一直是面向用户API的一部分。在最新的1.4版本,Spark UI将会把这些events在一个时间轴中显示,让用户可以一眼区别相对和交叉顺序。 时间轴视图可以覆盖3个等级:所有Job,指定的某个Job,以及指定的某个stage。在下图中 ,时间轴显示了横跨一个应用程序所有作业中的Spark events。 这里的events顺序相对简单,在所有 executors 注册后,在应用程序并行运行的4个job中, 1 / 10 通过可视化途径理解你的Spark应用程序 Spark大数据博客 - 有一个失败,其余成功。当所有工作完成,并在应用程序退出后,executors同样被移除。下面不 妨点击关注其中的一个job: 该job在3个文件中做word count,最后join并输出结果。从时间轴上看,很明显, 3个 word count stages 并行运行,因为它们不互相依赖。同时,最后一个阶段需要依赖前3个文件word count的结果,所以相应阶段一直等到所有先行阶段完成后才开始。下面着眼单个stage: 2 / 10 通过可视化途径理解你的Spark应用程序 Spark大数据博客 - 这个stage被切分为20个partitions,分别在4台主机上完成(图片并没有完全显示)。每段代 表了这个阶段的一个单一任务。从这个时间轴来看,我们可以得到这个stage上的几点信息。 首先,partitions在机器中的分布状态比较乐观。其次,大部分的任务执行时间分配在原始的 计算上,而不是网络或I/ O开销。这并不奇怪,因为传输的数据很少。最后,我们可以通过给exe cutors分配更多的核心来提升并行度;从目前来看,每个executors可以同时执行不超过两个任务 。 借此机会展示一下Spark通过该时间轴获得的另一个特性——动态分配。该特性允许Spark基 于工作负载来动态地衡量executors 的数量,从而让集群资源更有效地共享。不妨看向下张图表: 3 / 10 通过可视化途径理解你的Spark应用程序 Spark大数据博客 - 首先要注意的是,这个应用程序是在工作的过程中获得executors ,而不是预先分配好。在 第一个job结束后,用于该job的executors将闲置并返回到集群。因此在这个期间,同集群中运行 的其他应用程序可以获得这些资源,从而增加集群资源利用率。只有当一个新的job执行时,Spar k应用程序才会获取一组新的executors 来运行它。 在一个时间轴中查看Spark events的能力有助于确定应用程序瓶颈,从而在调试过程中进行更有针对性的优化。 Execution DAG 在新版本的Spark中,第二个可视化聚焦D

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档