数量 决定/设置方式 函数查询方式 备注
partition数量
sqlContext.setConf("spark.sql.shuffle.partitions", "300")

rdd1.getNumPartitions

或者

rdd1.partitions.size

 configures the number of partitions that are used when shuffling data for joins or aggregations.
partition数量
sqlContext.setConf("spark.default.parallelism", "300")

rdd1.getNumPartitions

或者

rdd1.partitions.size

default number of partitions in RDDs returned by transformations like joinreduceByKey, and parallelize
task数量 number-of-tasks = number-of-partitions或者"one task per stage per partition”[1] 不存在查命令/函数行询方式  
executor数量 --num-executors 不需要查询,直接命令行或者配置文件中设定即可  
job数量 每次spark-submit/spark-shell提交任务就是一个job 不存在查命令/函数行询方式  
stage数量 根据DAG依赖图来确定(其实还是根据代码来确定的) 不存在查命令/函数行询方式  

根据[1]可知,task数量就是partition的数量。

stage只是一个时间单位,

stage0执行完了执行stage1,然后执行stage2

注意不要搞混“并行度”(parallelism)和"并发数"(concurrency)两个概念

[3]spark.default.parallelism   默认是没有值的,如果设置了值比如说10,是在shuffle的过程才会起作用(val rdd2 = rdd1.reduceByKey(_+_) //rdd2的分区数就是10,rdd1的分区数不受这个参数的影响)

new SparkConf().set(“spark.default.parallelism”,”“500)

spark.sql.shuffle.partitions //spark sql中shuffle过程中partitions的数量

[4]

如果是读取hdfs的文件,一般来说,partition的数量等于文件的数量。

如果单个文件的大小大于hdfs的分块大小,partition的数量就等于 “文件大小/分块大小”。

同时,也可以使用rdd的repartition方法重新划分partition。

另外,在使用聚合函数比如 reducebykey, groupbykey,可以通过指定partitioner来指定partition的数量。

例如:

val rdd2 = rdd1.reduceByKey(_+_,10)

这里的10可以覆盖前面的spark.default.parallelism

val rdd3 = rdd1.join(rdd2) rdd3里面partiiton的数量是由父RDD(这里指的是rdd1和rdd2)中最多的partition数量来决定,因此使用join算子的时候,增加父RDD中partition的数量。

num-executors * executor-cores的2~3倍即为task(partition)数量,此时可以比较充分地利用集群资源[5]

Reference:

[1]http://How are stages split into tasks in Spark?

[2]What is the difference between spark.sql.shuffle.partitions and spark.default.parallelism?

[3]Spark性能调优之合理设置并行度

[4]Spark作业中Partition数目的划分是由什么决定的?

[5]spark 体验点滴- executor 数量 和task 并行数

spark中各种数量的确定和查询(持续更新中)相关推荐

  1. 香港电影中的演员:B字头(持续更新中)

    作者:caocao(网络隐士) 转载请注明来源:http://www.caocao.name/ 本系列部分内容是隐士从网上采集,部分内容是隐士原创,内容持续更新中. 白彪 隐士八卦:白彪师傅可是邵氏当 ...

  2. 香港电影中的演员:F字头(持续更新中)

    作者:caocao(网络隐士) 转载请注明来源:http://www.caocao.name/ 本系列部分内容是隐士从网上采集,部分内容是隐士原创,内容持续更新中. 樊梅生 隐士八卦:樊梅生当年是邵氏 ...

  3. 香港电影中的演员:A字头(持续更新中)

    作者:caocao(网络隐士) 转载请注明来源:http://www.caocao.name/ 本系列部分内容是隐士从网上采集,部分内容是隐士原创,内容持续更新中. A字头演员隐士觉得的好难找啊. 安 ...

  4. 香港电影中的演员:G字头(持续更新中)

    高飞 批发简介:高飞是空手道教练转行,身手自然不会差,在香港拍动作片也成了自然而然的事情.按照时间顺序,早些他的是在邵氏电影里头混,演些江湖人物或黑道人物:邵氏关闭之后和成龙洪金宝多有合作,做起了打手 ...

  5. spark中各类key算子的用法汇总(持续更新中)

    启动方式: spark-shell --master yarn 依赖导入: import org.apache.spark.{SparkConf, SparkContext} 输出rdd的类型举例: ...

  6. 大数据发行版本+组件中的竞品/等同地位关系(持续更新中)

    开源大数据版本 公司/开源组织 是否付费 备注 Apache Hadoop Apache 否 大数据组件的最初发型版 CDH Cloudera's Distribution Including Apa ...

  7. 大数据集群中数据互相导通流程汇总(持续更新中)

    X:原理上不存在这种流程或者没有必要. 加粗:数据库或数据仓库 非加粗:表示文件格式 ☆:表示重点,正在整理中 左侧列:数据源头 上侧行:数据传递终点   Hbase HDFS json txt My ...

  8. hexo主题应用中遇到的问题和解决方案(持续更新中)

    1 常见问题解决技巧 1.1 主题仓库和博客仓库嵌套 在使用github和hexo主题搭建个人博客过程中,我们使用hexo初始化的文件夹需要交给github进行代码托管,同时主题themes中的主题也 ...

  9. mysql查询更新优化_mysql查询优化(持续更新中)

    1.索引不会包含有NULL值的列 (1)   应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描 (2)   数据库设计时不要让字段的默认值为null,可以 ...

最新文章

  1. left join 临时表_不懂SQL优化?那你就OUT了——表连接的优化
  2. 数据产品经理从零到一:数据产品能力模型构建
  3. Android之使用PopupWindow使用和总结
  4. 曝张一鸣在游戏群批员工上班时聊游戏,遭回怼:那你退群啊
  5. 百度利用AI技术8、9月打击超83亿条有害信息
  6. 基础03String类、static、Arrays类、Math类
  7. 代写R语言assignment经常用到的代码语法分享!
  8. 如何快速学习PLC编程
  9. 什么是云计算管理平台
  10. NorthWind基本数据库添加问题
  11. 车架号识别系统-VIN码识别查询
  12. ipod nano7安装linux,怎么用ipod nano看视频?
  13. gst-launch-1.0用法小记
  14. 差异数据的对比和整理
  15. axis的xml转java的实际开发使用笔记
  16. 模型优化与tensorflow
  17. spark-调优(代码层面)
  18. WEB综合案例 黑马面面 day04 用户与角色绑定功能 登录用户菜单控制和权限效验
  19. SPDR年内增量尽数被抹 市场看空金市
  20. 提升.NET技术水平,我从不内卷!

热门文章

  1. 用java来实现验证码功能
  2. 成员变量的初始化和内存中的运行机制
  3. 转【FullPage.js 应用参数参考与简单调用】
  4. C#如何获得系统时间
  5. unable to execute dex:GC overhead limit exceeded unable to execute dex:java heap space 解决方案
  6. MySQL 5.1 安装过程中报apply security setting错误的解决办法 收藏
  7. [转载]让SQL运行得更快
  8. XCTF-高手进阶区:Web_php_unserialize(详解)
  9. DVWA--File Inclusion(文件包含)--四个级别
  10. JS高级-自执行函数-垃圾回收机制及内存管理