idea上debug spark standalone
引言debug spark可谓是研究spark源码的利器。spark local模式和其他分布式模式有很大不同,虽然可以在local模式下进行debug,但有很多东西只有在分布式模式下才有用。本文主要介绍在idea上如何remote debug spark的standalone模
引言debug spark可谓是研究spark源码的利器。spark local模式和其他分布式模式有很大不同,虽然可以在local模式下进行debug,但有很多东西只有在分布式模式下才有用。本文主要介绍在idea上如何remote debug spark的standalone模
在运行时看DAG 图时有时候会现一些stage会被跳过。这是因为当一个经过shuffle后的rdd,如ShuffledRDD, 再次被使用时,该ShuffledRDD对应的stage不会重新计算(除非某些分区数据出问题了,也只会单独对这些分区进行计算)。具体原理: 1、Shuff
在本机上通过idea跑spark sql进行hive查询等操作,一方面可以用于debug spark sql相关源码,另一方面可以加快开发测试进度,比如添加Udf等。这里总共两步:1、安装hive remote metastore模式 2、idea上的相关配置开发 hive 0.
sparkUI中的stage名称可以方便进行程序逻辑分析,但如果不了解stage的命名原理,看sparkUI时有时就会一头雾水。 stage的名称来自两个地方:callSite (callSite = getCallSite = Utils.getCallSiteInfo) 与
checkpoint会将结果写到hdfs上,当driver 关闭后数据不会被清除。所以可以在其他driver上重复利用该checkpoint的数据。 checkpoint write data:1234sc.setCheckpointDir("data/checkpoint")v
spark中也有可能出现数据倾斜问题(如join等,当key有大部分相同时(如像hive数据倾斜那样join的字段很多为null)),所以需要查看各分区的元素数目来判断数据各分区分布情况,以下是查看分区元素数的方法:12345678910111213object RDDUtils
AppendOnlyMap/ExternalAppendOnlyMap在spark被广泛使用,如join中shuffle的reduce阶段以及combineByKey操作等。 AppendOnlyMapAppendOnlyMap是spark自己实现的Map,只能添加数据,不能re
主要在PairRDDFunctions内实现,通过隐式转换使kv形式的RDD具有这个类中的方法。隐式转换代码如下,在SparkContext中进行,一定要是RDD[(K,V)]型的才可以被转换1implicit def rddToPairRDDFunctions[K: Class
rdd最主要方法 getPreferredLocations: 本地性相关(以后再详细研究) dependencies/getDependencies: 判断是否有ShuffleMapTask、获得firstParent partitions/getPartitions: 决定T
看了spark的部分源码,画了一些流程图,不好分类,就放在一起,以后再分开吧。note:请右击图片,在新页签打开图片 spark启动流程图 各组件名称说明 master: 资源管理,分配driver到哪个Worker,分配Executor等。standalone时是设置的7077