我正在尝试使用rest服务触发使用dataprocapi客户端的spark作业。但是,dataproc集群中的每个作业需要10-15秒来初始化spark驱动程序并提交应用程序。我想知道是否有一种有效的方法来消除从gs bucket中的jar文件触发的spark java作业的初始化时间?我想到的一些解决方案是:
将可用于每个spark作业的javasparkcontext的单个示例合并在一起
启动单个作业并在单个作业中运行基于spark的处理
有没有更有效的方法?如何在googledataproc中实现上述方法?
1条答案
按热度按时间at0kjp5o1#
与其自己编写此逻辑,不如研究spark作业服务器:https://github.com/spark-jobserver/spark-jobserver 因为这应该允许您重用spark上下文。
您可以为dataproc编写一个驱动程序,它从rest服务器接收rpc并自己重用sparkcontext,然后通过jobsapi提交这个驱动程序,但我个人会先查看作业服务器。