spark 作业配置

Last updated on November 22, 2024 pm

🧙 Questions

spark on yarn 需要对资源进行调优

☄️ Ideas

// 20核40GB
Map<String, String> sparkConfig = new HashMap<>();

// 配置spark可使用的资源  1个容器一个核  * 最大的容器内存
sparkConfig.put("spark.yarn.am.memoryr", "50g"); // 默认512m
sparkConfig.put("spark.yarn.am.cores", "10"); // 默认1

// driver 负责加载数据,需要大并发,可以不用配置 配置无效
// sparkConfig.put("spark.driver.memory","4g");
// driver的个数
//sparkConfig.put("spark.driver.cores","20");

// 单个执行器的配置 处理数据,处理数据10个并发进程,由于spark计算需要比实际要大,所以要比容器最大值,低一点点,必须是整数
// 这个值需要调大  (4g<5g 需要小于yarn的容器)
sparkConfig.put("spark.executor.memory", "4g");
// 每个执行器执行2个task (需要小于yarn的容器最大核数)
sparkConfig.put("spark.executor.cores", "2");
// 执行器的个数 (2*9=18个执行器)需要分配 9+1=10 yarn开启10个容器
sparkConfig.put("spark.executor.instances", "9");

sparkConfig.put("hive.metastore.uris", "thrift://localhost:9083");

String sql = "i";

spark-work-config

spark.worker.cleanup.appDataTtl 这个生效,可以配置半小时,
spark.worker.cleanup.interval 这个感觉不生效,可以配置一分钟

export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=604800 -Dspark.worker.cleanup.interval=300"

spark 作业配置
https://ispong.isxcode.com/hadoop/spark/spark 作业配置/
Author
ispong
Posted on
February 17, 2023
Licensed under