当前位置: 首页 > news >正文

spark的RDD分区的设定规则

目录

一、第一种:parallelize 获取rdd时

二、第二种:通过外部读取数据-textFile

三、上面提到了默认分区数,那么默认分区是怎么计算呢?


一、第一种:parallelize 获取rdd时

  • 没有指定:spark.default.parallelism参数值决定
  • 指定分区:指定几个,就是几个分区

总结:假如指定了分区数,分区数就是这个,假如没有指定spark.default.parallelism。

二、第二种:通过外部读取数据-textFile

  • 没有指定:spark.default.parallelism和2取最小值,

                         具体计算并行度的公式:min(spark.default.parallelism,2)

  • 指定分区:最小分区数,最少有这么多分区,具体的分区数可以根据HDFS分片规则来 hdfs                     ( 一片是128M或者128*1.1 = 140.8M)

rdd3 = sc.textFile("hdfs://bigdata01:9820/datas/wordcount/data.txt", minPartitions=2) 

假如你这个data.txt = 500M ,此时的分区数是:4  因为 500 =  128+ 128+ 128+ 116

三、上面提到了默认分区数,那么默认分区是怎么计算呢?

  • local模式

     默认并行度取决于本地机器的核数,即:

  1. local: 没有指定CPU核数,则所有计算都运行在一个线程当中,没有任何并行计算
  2. local[K]:指定使用K个Core来运行计算,比如local[2]就是运行2个Core来执行
  3. local[*]: 自动帮你按照CPU的核数来设置线程数。比如CPU有4核,Spark帮你自动设置4个线程计算
  • 集群模式

      集群模式包含Stanalone、Yarn模式,Mesos的默认并行度为8
      默认并行度取决于所有executor上的总核数与2的最大值,比如集群模式的设置如下:

--num-executors 5
--executor-cores 2
上面配置Executor的数量为5,每个Executor的CPU Core数量为2,
executor上的总核数10,则默认并行度为Max(10,2)=10。

http://www.lryc.cn/news/479354.html

相关文章:

  • 【点云网络】voxelnet 和 pointpillar
  • HAL库硬件IIC驱动气压传感器BMP180
  • 探索Python音频处理的奥秘:Pydub库的魔法
  • LeetCode 热题100(七)【链表】(2)
  • 计算机网络 TCP/IP体系 网络层
  • 迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
  • 实习作假:阿里健康实习做了RABC中台,还优化了短信发送流程
  • Unity中IK动画与布偶死亡动画切换的实现
  • java导出word文件(手绘)
  • ssm070基于SSM框架的校园代购服务订单管理系统的设计与实现+vue(论文+源码)_kaic
  • Java项目实战II基于Spring Boot的秒杀系统设计与实现(开发文档+数据库+源码)
  • FastAPI —— 请求参数验证
  • 第七篇: BigQuery中的复杂SQL查询
  • 【SQL实验】高级查询(难点.三)含附加数据库操作
  • qt QFileSystemModel详解
  • element plus中修改el-table的样式
  • 深入理解封装与接口:Java程序设计的核心思想与最佳实践
  • linux 下调试 mpu6050 三轴加速度
  • C语言心型代码解析
  • 【LeetCode】【算法】647. 回文子串
  • 介绍6种常见的基于知识图谱推荐算法的类型和各自的优缺点
  • 使用python拟合二元曲线系数
  • go 集成viper 配置管理
  • Java:数据结构-再谈String类
  • 斗破QT编程入门系列之二:GUI应用程序设计基础:UI文件(四星斗师)
  • 微服务实战系列之玩转Docker(十八)
  • Javascript 获取设备信息 工具
  • 基于开源 AI 智能名片、S2B2C 商城小程序的用户获取成本优化分析
  • 仿真APP助力汽车零部件厂商打造核心竞争力
  • vue实现websocket实时短消息通知