gpt4 book ai didi

apache-spark - 如何在执行程序运行的地方使用长生命周期的昂贵的实例化实用程序服务?

转载 作者:行者123 更新时间:2023-12-04 04:47:05 28 4
gpt4 key购买 nike

我的 Spark 处理逻辑依赖于长期存在、实例化成本高昂的实用程序对象来执行数据持久化操作。这些对象不仅可能不是 Serializable,而且在任何情况下都可能不切实际地分发它们的状态,因为所述状态可能包括有状态的网络连接。

我想做的是在每个执行器中本地实例化这些对象,或者在每个执行器生成的线程中本地实例化这些对象。 (只要不在 RDD 中的每个元组上进行实例化,任何一种选择都是可以接受的。)

有没有一种方法可以编写我的 Spark 驱动程序,使其指示执行程序调用函数以在本地实例化对象(并将其缓存在执行程序的本地 JVM 内存空间中),而不是在驱动程序中实例化它然后尝试序列化并分发给执行者?

最佳答案

可以在分区级别共享对象:

我试过这个:How to make Apache Spark mapPartition work correctly?

使 numPartitions 匹配执行器数量的倍数的重新分区。

关于apache-spark - 如何在执行程序运行的地方使用长生命周期的昂贵的实例化实用程序服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33807851/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com