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.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"
🔗 Links
spark 作业配置
https://ispong.isxcode.com/hadoop/spark/spark 作业配置/