随着大数据时代的到来,以及kubernetes的愈发火热,好多公司已经把spark应用从yarn迁移到k8s,当然也踩了不少的坑,
现在我们来分析一下spark on k8s的DynamicResourceAllocation这个坑
注意:该文基于spark 3.0.0分析
spark on yarn 中的DynamicResourceAllocation
spark on yarn对于DynamicResourceAllocation分配来说,从spark 1.2版本就已经开始支持了.
对于spark熟悉的人都知道,如果我们要开启DynamicResourceAllocation,就得有ExternalShuffleService服务,
对于yarn来说ExternalShuffleService是作为辅助服务开启的,具体配置如下:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>spark_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<property>
<name>spark

本文深入分析了Spark在YARN和Kubernetes上启用DynamicResourceAllocation时遇到的问题。在YARN上,ExternalShuffleService确保了executor的动态注册,而在Kubernetes(k8s)上,由于executor使用PODIP而非节点IP注册,导致问题。文章提到了社区已有的解决方案,即使用动态资源分配和shuffle跟踪,并提供了相关配置示例。
最低0.47元/天 解锁文章
989

被折叠的 条评论
为什么被折叠?



