spark的yarn模式优化
问题:每次spark on yarn时都要把spark/jars下的所有jar文件压缩,并上传到HDFS上的临时目录下
解决:上传jars中jar的压缩包到hdfs,并在spark-defaults.conf配置指定位置
入库优化
map、filter等是针对单个元素变换,
mapPartitions和mapPartitionsWithIndex是以分区为单位,元素通过迭代器组织在一起;对入库操作,如将数据写入mysql中,每个分区开启一个连接
数据倾斜:byKey操作
1、设计key,两次reduceByKey
2、随机分区,两次reduceByKey,较好
repartition 和 coalesce
rdd.repartition(n)调用的就是coalesce,始终进行shuffle操作。 如果是减少分区,推荐使用coalesce,可以指定是否进行shuffle操作,默认是false即不分区 通过coalesce增加分区时,必须指定shuffle为true,否则分区数不变。