在Glue开发端点上从SageMaker笔记本运行并发会话。

0

【以下的问题经过翻译处理】 客户创建了一个AWS Glue dev终端,并希望在同一个单独的Dev终端上并行运行两个Sagemaker笔记本,但它无法工作。

第一个被调用的仅能运行作业,而另一个失败。可能的原因和解决方法是什么?

profile picture
专家
已提问 5 个月前18 查看次数
1 回答
0

【以下的回答经过翻译处理】 SageMaker笔记本是使用SparkMagic模块连接到本地Livy设置的Jupyter笔记本。本地Livy通过SSH隧道连接到Glue Spark服务器上的Livy服务。Apache Livy绑定到端口8998,并且是一个可传递多个Spark会话命令的RESTful服务,因此不会发生多个端口绑定冲突。因此,只要后端集群有资源为这么多会话提供服务,就可以拥有多个会话。

您可以在笔记本中运行以下命令以检查Spark会话的默认值:

spark.sparkContext.getConf().getAll()

我在我的Spark会话中看到以下默认值。您可以轻松地从配置文件~/.sparkmagic/config.json或使用笔记本中的%%configure magic覆盖它们。

spark.executor.cores 4
spark.executor.memory 5g
spark.driver.memory 5g

请注意,spark.executor.instances未设置,spark.dynamicAllocation.enabled未覆盖,这意味着它为真,因此,如果一个笔记本中有要求苛刻的Spark作业,它可以占用集群中的所有资源并阻止其他Spark会话启动。当共享单个Glue Dev端点时,建议限制每个会话的执行者数量,以便多个会话可以从集群中获取资源,例如:

%%configure -f
{"executorMemory": "5G", "executorCores":4,"numExecutors":2}

(注:在单个SageMaker笔记本实例和多个SageMaker笔记本实例中测试过。)

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则