可以在 Spark Streaming 作业中捕获数据处理终止信号
Possibility to catch a dataproc kill signal on a spark streaming job
我正在寻找一种方法来捕获 python 火花流作业中的 dataproc 作业终止信号:我在 dataproc 上有一个特定的作业,它打开了几个与 PostgreSQL 数据库的连接,它本身具有有限的其池中的连接数量。目前,如果作业重新启动,连接不会正确关闭,因此该作业的下一个实例没有足够的可用连接来正常运行。如果我能够以某种方式在作业中捕捉到终止信号,我仍然可以确保连接最终关闭。
我怀疑你能做的最好的事情就是在你的 Python 驱动程序中注册一个 atexit handler;它是否成功调用取决于重启或失败的原因,因此您只能通过首先使用预期的重启案例对其进行测试来验证它是否有效。
否则,如果有一种方法可以通过其他方式以某种方式强制清理孤立连接,则可能更容易在启动时查找它们并明确发出任何必要的清理调用。
我正在寻找一种方法来捕获 python 火花流作业中的 dataproc 作业终止信号:我在 dataproc 上有一个特定的作业,它打开了几个与 PostgreSQL 数据库的连接,它本身具有有限的其池中的连接数量。目前,如果作业重新启动,连接不会正确关闭,因此该作业的下一个实例没有足够的可用连接来正常运行。如果我能够以某种方式在作业中捕捉到终止信号,我仍然可以确保连接最终关闭。
我怀疑你能做的最好的事情就是在你的 Python 驱动程序中注册一个 atexit handler;它是否成功调用取决于重启或失败的原因,因此您只能通过首先使用预期的重启案例对其进行测试来验证它是否有效。
否则,如果有一种方法可以通过其他方式以某种方式强制清理孤立连接,则可能更容易在启动时查找它们并明确发出任何必要的清理调用。