Sagemaker部署SparkML模型报错:健康检查未通过,key 'size'缺失
SparkML模型部署到SageMaker健康检查失败问题排查
环境信息
- mleap-spark: 0.17.0
- EMR: 5.24.0
问题现象
部署时触发报错:The primary container for production variant AllTraffic did not pass the ping health check sagemaker,CloudWatch日志中的核心异常(已翻译):
Caused by: org.springframework.beans.factory.BeanCreationException: 创建类路径资源[com/amazonaws/sagemaker/configuration/BeanConfiguration.class]中定义的'provideTransformer' Bean失败:工厂方法实例化Bean出错;嵌套异常是org.springframework.beans.BeanInstantiationException: 无法实例化[ml.combust.mleap.runtime.frame.Transformer]:工厂方法'provideTransformer'抛出异常;嵌套异常是java.util.NoSuchElementException: 找不到键: size
部署代码
from time import gmtime, strftime import time timestamp_prefix = strftime("%Y-%m-%d-%H-%M-%S", gmtime()) import sagemaker from sagemaker import get_execution_role from sagemaker.sparkml.model import SparkMLModel sess = sagemaker.Session() role ="sagemaker-execution-role"# get_execution_role() sparkml_data = "s3://{}/{}/{}".format( "emr-spark-sagemaker", "emr/sparkml-layer/mleap", "model.tar.gz" ) model_name = "sparkml-layer-" + timestamp_prefix sparkml_model = SparkMLModel( model_data=sparkml_data, role=role, sagemaker_session=sess, name=model_name, env={"SAGEMAKER_SPARKML_SCHEMA": schema_json}, ) endpoint_name = "sparkml-layer-ep-ap3" sparkml_model.deploy( initial_instance_count=1, instance_type="ml.c4.xlarge", endpoint_name=endpoint_name )
排查与解决
这个错误的核心是MLeap模型加载时找不到size键,从以下几个方向排查:
校验Schema配置
SAGEMAKER_SPARKML_SCHEMA传入的schema_json必须是模型训练时DataFrame的完整schema JSON串。可以在导出模型的Spark环境中执行df.schema.json()获取正确的schema,确保包含size字段(如果模型依赖该字段),且格式无错误。- 避免手动编写schema,容易出现字段名、类型不匹配的问题。
检查模型完整性
- 下载S3上的
model.tar.gz,解压后确认包含model.json和所有必要的MLeap模型文件,没有损坏或缺失。 - 用MLeap Runtime在本地加载模型,验证模型本身是否能正常初始化,排除模型导出时的问题。
- 下载S3上的
版本兼容性验证
- EMR 5.24.0内置Spark 2.4.0,确认mleap-spark 0.17.0与该Spark版本兼容。若存在版本冲突,调整mleap版本至与Spark 2.4.x匹配的稳定版(比如mleap-spark 0.16.0)。
权限配置检查
- 代码中手动指定的
sagemaker-execution-role必须拥有S3模型文件的GetObject权限,以及SageMaker部署相关的权限。建议恢复使用get_execution_role()自动获取角色,避免手动配置出错。
- 代码中手动指定的
内容的提问来源于stack exchange,提问作者SushantPatade
相关产品推荐
相关产品推荐

