AWS Glue Spark Sagemaker笔记本失败

时间:2019-10-23 07:15:43

标签: python-3.x amazon-web-services pyspark aws-glue amazon-sagemaker

无法运行AWS Glue Sagemaker Notebook,它在启动时抛出错误。有人可以让我知道我是否想念这里吗?

PS:按照错误日志中的建议,我已经重启了几次内核,但没有帮助。

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job

glueContext = GlueContext(SparkContext.getOrCreate())

错误

The code failed because of a fatal error:
    Error sending http request and maximum retry encountered..

Some things to try:
a) Make sure Spark has enough available resources for Jupyter to create a Spark context.
b) Contact your Jupyter administrator to make sure the Spark magics library is configured correctly.
c) Restart the kernel.

2 个答案:

答案 0 :(得分:0)

所以我在AWS帐户中的现有SageMaker Notebook上也遇到了同样的问题。

自几周前我第一次创建笔记本以来,笔记本的状态一直为“就绪”。

从根本上停止并重新启动它可以解决问题。

答案 1 :(得分:0)

几个小时前我在学习 this 教程时遇到了同样的问题。

找到解决方案here

如果您使用的是 docker 容器,请运行以下命令:

docker run -itd -p 8888:8888 -p 4040:4040 -v ~/.aws:/root/.aws:ro --name glue_jupyter --ulimit nofile=122880:122880 -m 3G amazon/aws-glue-libs:glue_libs_1.0.0_image_01 /home/jupyter/jupyter_start.sh

说明

<块引用>

Docker ulimits 限制程序的资源利用率,以防止失控的错误或安全漏洞导致整个系统宕机

发生的情况是容器最终使用了比应有的更多资源,因此内存不足。

我怎么知道这是问题所在?

尝试从容器内部运行 spark 的 cli 并检查是否出现如下错误消息:

<块引用>

无法分配文件描述符表 - 内存不足

在我的情况下,我在 ArchLinux 中使用了来自 AUR 的 docker 预编译包,它带有 ulimit 标志 设置为低于默认值的值。