spark内存计算框架
-
1、spark on yarn 原理和机制(★★★★★)
- yarn-client
- yarn-cluster
-
2、collect算子操作作用
- 第一点
- 它是一个action触发任务的真正运行
- 第二点
- 它会把rdd的数据进行收集之后,以数组的形式返回给Driver端
- 第一点
-
3、spark中计算资源的参数说明(★★★★★)
- –executor-memory
- –total-executor-cores
-
4、spark的shuffle原理分析(★★★★★)
- HashShuffle
- 普通的hashShuffle
- 合并机制的hashShuffle
- 重复利用buffer缓冲区,减少生成的磁盘文件个数
- sort Shuffle
- 普通的sortShuffle
- 后期会进行数据的排序,并且一个task生成一个磁盘文件和一个索引文件
- bypass模式的sortShuffle
- 这里可以通过参数去控制是否需要排序。
- spark.shuffle.sort.bypassMergeThreshold<=200
- 普通的sortShuffle
- HashShuffle
1. spark on yarn
- 可以把spark程序提交到yarn中去运行,此时spark任务所需要的计算资源由yarn中的老大ResourceManager去分配
- 官网资料地址
- 环境准备
- 1、安装hadoop集群
- 2、安装spark环境
- 注意这里不需要安装spark集群
- 只需要解压spark安装包到任意一台服务器
- 修改文件 spark-env.sh
- 只需要解压spark安装包到任意一台服务器
- 注意这里不需要安装spark集群
#指定java的环境变量
export JAVA_HOME=/kkb/install/jdk1.8.0_141
#指定hadoop的配置文件目录
export HADOOP_CONF_DIR=/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
- 按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式:
yarn-client
模式、yarn-cluster
模式
1.1 yarn-cluster模式
- yarn-cluster模式下提交任务示例
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 1 \
/kkb/install/spark/examples/jars/spark-examples_2.11-2.3.3.jar \
10
10是main方法里面的参数
-
如果运行出现错误,可能是虚拟内存不足,可以添加参数
- vim yarn-site.xml
<!--容器是否会执行物理内存限制默认为True--> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value>