Spark1.4.0让你透视整个Spark分布式执行

Spark1.4.0让你透视整个Spark分布式执行

高速演进的Apache Spark这一周刚刚发布1.4.0,除了SparkR的重量级发布,一个值得一提的是对Spark分布式执行的可视化。


Job时间线

在Jobs页面添加了Event Timeline
Spark Jobs Event Timeline

DAG图

Spark执行的核心是生成DAG(有向非循环图),把整个计算分解成若干个Stage,把narrow dependency的RDD合在一个stage执行,把wide dependency的RDD分到不同的Stage。最后并行或串行的在Spark集群里执行Stage。

下面就是一个例子,实际开发优化,往往要分析DAG,看看Stage是否能合并,过多的Stage往往意味着大量缓慢的跨节点数据Shuffle。

DAG例子

我运行一个简单的Word Count并排序的Scala程序。

val rdd = sc.textFile("hdfs://hadoop1:8000/README.txt")
val wordcount = rdd.flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_)
val wordsort = wordcount.map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))
wordsort.take(10)

像Spark1.3以前的一样,可以看到所有的Stage清单。

Stages

打开Stage 0和Stage 1就可以看到对应的DAG的图了,每一个transformation对应相应的RDD类型,是不是很直观。

Stage0

Stage1

Stage的开销时间线

除了DAG图,更牛逼的是Stage详细页面上,还可以看到同一个Stage里消耗在不同计算、Serialize、Shuffle方面的开销。

Stage timeline

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值