博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
30、提高并行度&广播共享数据
阅读量:5220 次
发布时间:2019-06-14

本文共 703 字,大约阅读时间需要 2 分钟。

一、提高并行度

1、图解

实际上Spark集群的资源并不一定会被充分利用到,所以要尽量设置合理的并行度,来充分地利用集群的资源。才能充分提高Spark应用程序的性能。Spark会自动设置以文件作为输入源的RDD的并行度,依据其大小,比如HDFS,就会给每一个block创建一个partition,也依据这个设置并行度。对于reduceByKey等会发生shuffle的操作,就使用并行度最大的父RDD的并行度即可。可以手动使用textFile()、parallelize()等方法的第二个参数来设置并行度;也可以使用spark.default.parallelism参数,来设置统一的并行度。Spark官方的推荐是,给集群中的每个cpu core设置2~3个task。比如说,spark-submit设置了executor数量是10个,每个executor要求分配2个core,那么application总共会有20个core。此时可以设置new SparkConf().set("spark.default.parallelism", "60")来设置合理的并行度,从而充分利用资源。

二、广播共享数据

1、图解

如果你的算子函数中,使用到了特别大的数据,那么,这个时候,推荐将该数据进行广播。这样的话,就不至于将一个大数据拷贝到每一个task上去。而是给每个节点拷贝一份,然后节点上的task共享该数据。这样的话,就可以减少大数据在节点上的内存消耗。并且可以减少数据到节点的网络传输消耗。

转载于:https://www.cnblogs.com/weiyiming007/p/11263544.html

你可能感兴趣的文章
在react底下安装环境
查看>>
hdu4888 Redraw Beautiful Drawings(最大流)
查看>>
Java——一个类的加载过程
查看>>
objective-c 取消执行的延迟函数
查看>>
python——装饰器例子一个
查看>>
获取 metadata 的完整例子 - 每天5分钟玩转 OpenStack(166)
查看>>
C#注册表操作类(完整版)
查看>>
ArcGIS Server GP服务使用常见错误总结
查看>>
Jzoj3883 线段树
查看>>
微信小程序_(组件)picker
查看>>
OpenCV图片拼接的两种方法
查看>>
基于eBox旋转编码器
查看>>
异常、架构、框架、序列化、接口
查看>>
[Linux发行版] 常见Linux系统下载(转)
查看>>
[Angular] N things you might don't know about Angular Route
查看>>
[HTML5] Using the tabindex attribute for keyboard accessibility
查看>>
【Git】本地分支
查看>>
锁机制
查看>>
cf519D. A and B and Interesting Substrings(前缀和)
查看>>
.net framework
查看>>