您当前的位置: 首页 >  ar

宝哥大数据

暂无认证

  • 0浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Spark性能调优

宝哥大数据 发布时间:2018-07-15 09:42:04 ,浏览量:0

基本上,在一定范围之内,增加资源与性能的提升,是成正比的, 就是要来调节最优的资源配置 如果资源达到了限制, 就需要进行逻辑优化

一、资源分配 1.1、分配哪些资源?

SparkContext,DAGScheduler,TaskScheduler,会将我们的算子,切割成大量的task,提交到Application的executor上面去执行。 这里写图片描述

1.1.1、executor、 1.1.2、cpu per executor、 1.1.3、memory per executor、
  • 1、如果需要对RDD进行cache,那么更多的内存,就可以缓存更多的数据,将更少的数据写入磁盘,甚至不写入磁盘。减少了磁盘IO。
  • 2、对于shuffle操作,reduce端,会需要内存来存放拉取的数据并进行聚合。如果内存不够,也会写入磁盘。如果给executor分配更多内存以后,就有更少的数据,需要写入磁盘,甚至不需要写入磁盘。减少了磁盘IO,提升了性能。
  • 3、对于task的执行,可能会创建很多对象。如果内存比较小,可能会频繁导致JVM堆内存满了,然后频繁GC,垃圾回收,minor GC和full GC。(速度很慢)。内存加大以后,带来更少的GC,垃圾回收,避免了速度变慢,速度变快了。
1.1.4、driver memory 1.2、可以参考spark提交任务命令, 主要一下参数配置分配资源。
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://nn1:7077 \
--num-executors 1 \         配置executor的数量
--executor-memory 100M \    配置每个executor的内存大小
--executor-cores 1  \       配置每个executor的cpu core数量
--driver-memory 100M \      配置driver的内存(影响不大)
/usr/hdp/2.6.1.0-129/spark/lib/spark-examples-1.6.3.2.6.1.0-129-hadoop2.7.3.2.6.1.0-129.jar 100
1.3、调节到多大,算是最大呢? 1.3.1、Spark Standalone

你应该清楚你的集群每台机器还能够给你使用的,大概有多少内存,多少cpu core;那么,设置的时候,就根据这个实际的情况,去调节每个spark作业的资源分配。比如说你的每台机器能够给你使用4G内存,2个cpu core;20台机器;executor,20;4G内存,2个cpu core,平均每个executor。

1.3.2、Yarn资源队列。

资源调度。应该去查看,你的spark作业,要提交到的资源队列,大概有多少资源?500G内存,100个cpu core;executor,50;10G内存,2个cpu core,平均每个executor。

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0427s