You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过boto3启动AWS EMR Notebook无法进入Running状态,如何验证执行结果

EMR Notebook无法进入RUNNING状态的排查与验证方法

代码层面的首要问题

你当前提交的测试代码中,调用start_notebook_execution启动Notebook执行后仅休眠5秒,就主动调用了stop_notebook_execution终止任务。EMR Notebook从启动到进入RUNNING状态通常需要10秒到数分钟不等,提前终止是你看不到RUNNING状态的核心原因。

验证Notebook执行成功的具体方法

  • 调整Lambda执行逻辑,获取完整状态流转
    先注释代码中主动停止执行的client.stop_notebook_execution相关逻辑,增加轮询查询状态的逻辑,避免提前中断任务,示例参考:
    # 替换原有sleep 5秒+stop的逻辑
    max_wait_time = 600  # 可根据Notebook实际运行时长调整最长等待时间,单位为秒
    waited_time = 0
    while waited_time < max_wait_time:
        desc_resp = client.describe_notebook_execution(NotebookExecutionId=execution_id)
        exec_status = desc_resp['NotebookExecution']['Status']
        print(f"当前执行状态:{exec_status}")
        # 状态进入终态或已进入运行状态就终止轮询
        if exec_status in ["RUNNING", "FINISHED", "FAILED", "STOPPED"]:
            # 若需要查看失败原因,打印desc_resp['NotebookExecution'].get('LastStateChangeReason')
            break
        time.sleep(10)
        waited_time += 10
    
  • 查看S3存储的执行输出
    调用start_notebook_execution时你需要配置NotebookS3Location参数指定输出路径,Notebook执行完成后,运行后的带单元格输出的ipynb文件、运行日志都会自动上传到该S3路径,直接下载查看该文件就能确认脚本是否按预期运行。
  • 查看EMR集群步骤日志
    Notebook执行本质是在绑定的EMR集群上提交了一个专属步骤,你可以打开EMR控制台进入对应集群的「步骤」页签,找到对应ID的Notebook执行任务,直接查看该步骤的stdout、stderr日志定位运行问题。
  • 查看状态变更原因字段
    当执行状态为FAILED/STOPPED时,调用describe_notebook_execution返回的结果中会包含LastStateChangeReason、FailureReason字段,会明确标注失败的具体原因,比如权限不足、脚本语法错误、集群资源不足、路径不存在等。
  • 校验IAM权限配置
    确认Lambda执行角色、Notebook指定的ServiceRole都已配置EMR操作、S3读写、集群访问的对应权限,权限缺失会导致Notebook启动后直接停止或失败。

现有CloudWatch日志说明

你日志中出现的STARTING后直接跳转STOPPED/FAILED,一部分是你提前调用stop接口导致,另一部分可能是权限或参数配置错误导致的启动失败,注释stop逻辑重新测试即可看到完整的状态流转。

内容的提问来源于stack exchange,提问作者user22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:54:05