首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在可自动扩展的共享集群上高效地存储桶/分区?

如何在可自动扩展的共享集群上高效地存储桶/分区?
EN

Stack Overflow用户
提问于 2021-11-26 12:19:53
回答 1查看 35关注 0票数 2

编辑:对Databricks使用Spark

据我所知,有效的分区应该基于可用的执行器的数量,理想情况下分区% executors =0

但是如果你在一个共享的Spark集群上工作,这个集群可以根据活动自动伸缩,在这个集群中,人们可能会让一些执行者忙于自己的工作,那么以这种方式有效地分区和存储桶是可能的吗?

假设我注意到集群上有8个exectutor处于活动状态,因此我创建了8个分区或存储桶,以便更轻松地分配工作负载。在这种情况下,Alice和Jane登录并开始运行大型查询,因此集群扩展到12个执行器。

现在我不再被有效地分割了。或者,如果集群没有升级,但Alice和Jane占用了一些执行器,现在我的分区将会倾斜,对吧?

或者..。Spark会意识到我有8个分区吗?如果没有足够的分区,Spark会根据需要进行升级吗?

EN

回答 1

Stack Overflow用户

发布于 2021-11-26 18:56:22

规则partitions % executors = 0应用于高效处理,因此在某个时间点上,您拥有的分区不会少于executors。实际上,事情要复杂得多-分区可以很小,然后在自适应查询执行( AQE )开始时自动合并,将多个小分区组合成更大的逻辑分区,等等。这是Spark 3.x上的“优化”之一-将分区设置为较大的数字,并允许AQE对其进行优化,而不是以太大的分区结束。

是的,在共享集群上,一些资源可能会被其他用户占用,但这只会为你的处理分配更少的内核,而不会扭曲你的分区。不对称分区主要与不同大小的分区相关,但这也应该由DBR 7.3+上启用的AQE来处理。

总而言之:是的,在共享集群上,一些资源会被其他用户占用,但除此之外,最好是依靠Spark 3.x在自动优化方面的改进。在以前的版本中,有许多在新版本中不需要的手动调优。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70124322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档