随笔 - 232  文章 - 1  评论 - 24  阅读 - 45万

Spark参数配置说明

1  修改$SPARK_HOME/conf目录下的spark-defaults.conf文件

添加以下配置项

spark.sql.hive.convertMetastoreParquet       false

hive.exec.compress.output     false

如果spark.sql.hive.convertMetastoreParquet不设置为false,前台清单预览看到的内容为乱码。

由于parquet格式的文件内置了压缩,故输出结果不需要进行压缩,如果设置为压缩,清单下载功能异常。

2 修改$SPARK_HOME/conf目录下spark-env.sh文件,设置以下参数:

SPARK_EXECUTOR_INSTANCES=11

SPARK_EXECUTOR_CORES=2

SPARK_EXECUTOR_MEMORY=1G

SPARK_DRIVER_MEMORY=3G

根据需要配置,如果设置刚好满足所有内存,则没有多余的内存供其他task任务的执行

2.1 参数SPARK_EXECUTOR_INSTANCES

该参数决定了yarn集群中,最多能够同时启动的EXECUTOR的实例个数。Yarn中实际能够启动的最大Executors的数量会小于等于该值。如果不能确定最大能够启动的Executors数量,建议将该值先设置的足够大。(就是设置尽量大)

2.2 SPARK_EXECUTOR_CORES  该参数为设置每个EXECUTOR能够使用的CPU core的数量。

Yarn集群能够最多并行的Task数据为SPARK_EXECUTOR_INSTANCES乘        以SPARK_EXECUTOR_CORES一般设置为2

 也就是说如果spark_executor_instances=11 则最多并行的Task数为22

2.3 SPARK_EXECUTOR_MEMORY

该参数设置的是每个EXECUTOR分配的内存的数量。需要注意的是,该内存数量是SPARK_EXECUTOR_CORES中设置的内核数共用的内存数量。

例如上面示例中,就是2核cpu公用1G内存。

2.4 SPARK_DRIVER_MEMORY

该参数设置的是DRIVER分配的内存的大小。也就是执行start-thriftserver.sh机器上分配给thriftserver的内存大小。

 

3 yarn.nodemanager.resource.memory-mb

$HADOOP_HOME/etc/hadoop目录下的yarn-site.xml文件中,参数yarn.nodemanager.resource.memory-mb配置了每台机器yarn能够使用的物理内存大小,单位是MB。

如果发现集群内内存使用量明显比屋里内存小,可以修改该参数

4 spark.yarn.executor.memoryOverhead

该参数指定了每个executor在分配的内存之外,能够额外获得的内存的大小,默认是7%

posted on   松伯  阅读(12711)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示