栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spark提交任务的基础配置解释

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spark提交任务的基础配置解释

#!/bin/bash
#队列名 根据yarn的队列提交
realtime_queue=root
#提交的任务名
my_job_name="OrderQZ"
spark-shell --master yarn --deploy-mode client
--queue $realtime_queue
#总的executors数 根据数据量与自己的集群资源来分配
--num-executors 35
#每个executor的核数
--executor-cores 5
#每个executor的内存
--executor-memory 19G
#diver 端jvm日志配置
--conf spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j-yarn.properties
--conf spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j-yarn.properties
#序列化
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
#数据本地化;一般会默认3s,重试5次的去分配,一旦超时失败,将会选择一个比上一个本地级别差的级别再一次分配,如果发生了数据传输,那么task首先通过blockmanager获取数据,如果本地没有数据,则通过getRemote方法从数据所在节点的blockmanager获取数据并返回至task所在节点
--conf spark.locality.wait=5
#失败重试次数
--conf spark.task.maxFailures=8
# 是否开启在webui杀死进程
--conf spark.ui.killEnabled=false
#SparkContext 启动时记录有效 SparkConf信息
--conf spark.logConf=true
#driver的堆外内存 内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机),这样做的结果就是能够在一定程度上减少垃圾回收对应用程序造成的影响。使用未公开的Unsafe和NIO包下ByteBuffer来创建堆外内存
--conf spark.yarn.driver.memoryOverhead=512
--conf spark.yarn.executor.memoryOverhead=5480 
#提交申请的最大尝试次数, 小于等于YARN配置中的全局最大尝试次数。
--conf spark.yarn.maxAppAttempts=4
#定义AM故障跟踪的有效时间间隔。如果AM至少在定义的时间间隔内运行,则AM故障计数将被重置。如果未配置,此功能未启用。
--conf spark.yarn.am.attemptFailuresValidityInterval=1h

--conf spark.yarn.executor.failuresValidityInterval=1h
#动态资源分配
--conf spark.shuffle.service.enabled=true
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer
#推测执行
--conf spark.speculation=true
--conf spark.speculation.quantile=0.9
#shffule task数目
--conf spark.sql.shuffle.partitions=178
#,当它设置为true时,Spark SQL会把每条查询的语句在运行时编译为java的二进制代码。这有什么作用呢?它可以提高大型查询的性能,但是如果进行小规模的查询的时候反而会变慢,就是说直接用查询反而比将它编译成为java的二进制代码快。所以在优化这个选项的时候要视情况而定。
--conf spark.sql.codegen=true
#默认值为false 它的作用是自动对内存中的列式存储进行压缩
--conf spark.sql.inMemoryColumnarStorage.compressed=true
# join实现主要有3种,即BroadcastHashJoinExec、ShuffledHashJoinExec和SortMergeJoinExec,优先级为
#1 如果canBroadcast,则BroadcastHashJoinExec;
#2 如果spark.sql.join.preferSortMergeJoin=false,则ShuffledHashJoinExec;
#3 否则为SortMergeJoinExec;
--conf spark.sql.join.preferSortMergeJoin=true
# Spark底层shuffle的传输方式是使用netty传输,netty在进行网络传输的过程会申请堆外内存(netty是零拷贝),所以使用了堆外内存。
--conf spark.reducer.maxSizeInFlight=96M

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732448.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号