spark - SparkContext 和 SqlContext - 生命周期和线程安全

spark - SparkContext and SqlContext - lifecycle and threadsafty

我正在 spark 之上开发休息服务,它将用户查询作为输入,制定 spark sql 并在 spark 集群上执行它。这是我对 JavaSparkContext 和 JavaSqlContext 的假设:
1)他们都是线程安全的 2)我可以在整个应用程序中重用单个实例(上下文!)

基于此,我在应用程序启动期间只初始化了这些变量的一个实例,然后尝试将它们重新用于所有传入请求。

我可以发出请求并按预期获得结果,但我最近发现我的应用程序如果闲置几分钟就会死掉,并出现以下异常。
11:49:50.475 [spark-akka.actor.default-dispatcher-14] 错误 o.a.s.s.c.SparkDeploySchedulerBackend- 应用程序已被终止。原因:师傅删除了我们的申请:FAILED<br> 11:49:50.477 [spark-akka.actor.default-dispatcher-14] 错误 o.a.s.scheduler.TaskSchedulerImpl- 由于集群调度程序错误而退出:Master 删除了我们的应用程序:FAILED

那么,是我的任何导致我出现此问题的假设有误,还是总体设计有误?

你的假设是正确的。实际上每个 JVM 只能 运行 一个 SparkContext

我遇到的错误是网络错误。我们公司集群拒绝通过 VPN 连接