我正在Zeppelin内部的协作环境中与Spark合作。因此,我们只有一个解释器,并且许多用户正在使用该解释器。出于这个原因,我定义它使用instantiation per user在scoped mode。
通过这种配置,用户作业X等待其他用户的作业分配的资源。
为了更改此行为并允许来自不同用户的作业同时执行,我将Spark配置(在Zeppelin解释器配置上)定义spark.scheduler.mode为FAIR。为了达到预期的效果,用户需要在笔记本上手动定义自己的Spark池(可以同时执行来自不同池的作业:https://spark.apache.org/docs/latest/job-scheduling。 html#scheduling-in-an-application)和以下代码:
sc.setLocalProperty("spark.scheduler.pool", "pool1")
Run Code Online (Sandbox Code Playgroud)
备注:一小时后,翻译器关闭。如果用户忘记了下次执行该命令,那么他们将落入默认池中,这不好。
我想知道的是:是否可以在他每次执行Spark段落时自动设置一个Spark用户池,而无需人工操作?
如果还有其他方法可以做到,请告诉我。