【发布时间】:2021-04-01 22:37:21
【问题描述】:
我正在使用 Sagemaker 生成来进行预处理和生成训练数据,并且我正在关注 Sagemaker API 文档here,但我目前看不到如何在 EMR 集群中指定自动缩放。我应该在传递给我的 spark_processor run() 对象的 configuration 参数中包含什么?我不应该包括什么?
我知道this resource,但它似乎并不全面。
下面是我的代码;这是一个非常“进行中的工作”,但我想知道是否有人可以为我提供或指向我显示的资源:
- 此 PySparkProcessor 对象是否会自动管理自动缩放。我应该将 AutoScaling 配置放在
configuration的run()对象中吗? - 我可以传递给
configuration变量的完整配置示例。
这是我目前的配置。
SPARK_CONFIG = \
{ "Configurations": [
{ "Classification": "spark-env",
"Configurations": [ {"Classification": "export"} ] }
]
}
spark_processor = PySparkProcessor(
tags=TAGS,
role=IAM_ROLE,
instance_count=2,
py_version="py37",
volume_size_in_gb=30,
container_version="1",
framework_version="3.0",
network_config=sm_network,
max_runtime_in_seconds=1800,
instance_type="ml.m5.2xlarge",
base_job_name=EMR_CLUSTER_NAME,
sagemaker_session=sagemaker_session,
)
spark_processor.run(
configuration=SPARK_CONFIG,
submit_app=LOCAL_PYSPARK_SCRIPT_DIR,
spark_event_logs_s3_uri="s3://{BUCKET_NAME}/{S3_PYSPARK_LOG_PREFIX}",
)
对于这些类型的任务,我习惯于通过 Python 更直接地与 EMR 进行交互。这样做可以让我一次指定整个 EMR 集群配置——包括应用程序、自动缩放、EMR 默认和自动缩放角色——然后在集群创建后将步骤添加到集群;但是,这个配置的大部分似乎都被抽象掉了,我不知道还有什么需要指定,特别是关于以下配置变量:AutoScalingRole、Applications、VisibleToAllUsers、JobFlowRole/@ 987654333@等
【问题讨论】:
标签: amazon-web-services pyspark sdk amazon-sagemaker