【发布时间】:2015-05-07 08:38:09
【问题描述】:
我正在开发基于用户查询作为输入、制定 spark sql 并在 spark 集群上执行它的 spark 的 rest 服务。这是我对 JavaSparkContext 和 JavaSqlContext 的假设:
1)它们都是线程安全的
2)我可以在整个应用程序中重用单个实例(上下文!)
基于此,我在应用程序启动期间仅初始化这些变量的一个实例,然后尝试将它们重用于所有传入请求。
我可以按预期触发请求并获得结果,但我最近发现我的应用程序如果空闲几分钟就会死掉,但出现以下异常。 11:49:50.475 [spark-akka.actor.default-dispatcher-14] ERROR o.a.s.s.c.SparkDeploySchedulerBackend- Application has been killed. Reason: Master removed our application: FAILED
11:49:50.477 [spark-akka.actor.default-dispatcher-14] ERROR o.a.s.scheduler.TaskSchedulerImpl- Exiting due to error from cluster scheduler: Master removed our application: FAILED
那么我的任何假设是否导致我出现这个问题或总体上的设计错误?
【问题讨论】:
标签: apache-spark apache-spark-sql