使用Airflow EmrCreateJobFlowOperator升级EMR-6.8.0时遇标签无效错误
问题:AWS EMR 6.8.0文档已更新,但实际创建集群时提示版本无效
AWS官方文档显示已发布EMR新集群版本emr-6.8.0,但使用Airflow的EMR创建Job Flow操作符升级至该版本时,遇到以下错误:
Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 1138, in _run_raw_task self._prepare_and_execute_task_with_callbacks(context, task) File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 1311, in _prepare_and_execute_task_with_callbacks result = self._execute_task(context, task_copy) File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 1341, in _execute_task result = task_copy.execute(context=context) File "/usr/local/airflow/dags/plugins/operators/shippo_emr_operators.py", line 133, in execute return super().execute(context) File "/usr/local/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/operators/emr_create_job_flow.py", line 81, in execute response = emr.create_job_flow(job_flow_overrides) File "/usr/local/airflow/.local/lib/python3.7/site-packages/airflow/providers/amazon/aws/hooks/emr.py", line 88, in create_job_flow response = self.get_conn().run_job_flow(**config) File "/usr/local/airflow/.local/lib/python3.7/site-packages/botocore/client.py", line 357, in _api_call return self._make_api_call(operation_name, kwargs) File "/usr/local/airflow/.local/lib/python3.7/site-packages/botocore/client.py", line 676, in _make_api_call raise error_class(parsed_response, operation_name) botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the RunJobFlow operation: The supplied release label is invalid: emr-6.8.0.
检查EMR相关代码未发现硬编码值,执行aws emr list-release-labels命令后,返回的可用版本中没有emr-6.8.0:
NextToken: AAIAAdZ_6MGjAhReZYcOrXICLpYU98iQO_ZB3kCK65qEWRH9MrJLdi_r-alVGb1AZlnFg0vsdxRUzdBLt-SyQ3TznUBM8Ncu7n94pJVQykbWe_TapxBi2WpUkcZfRAcxYgcg6TwejeaxGKcbysA89Jc9M3vIlVQetGgY1zQESS2Dq3P9vxvsOo3xxZoTqnmOVjs24Hy1hPM8zfzoUfH7MMomXkqhU5MHZ0cG3Aee5F51LtNS0_NBge399SiDYwhz1W2RB2tAjDc= ReleaseLabels: - emr-6.7.0 - emr-6.6.0 - emr-6.5.0 - emr-6.4.0
疑问:标签格式是否变更?若已变更,何处可获取正确标签字符串?是否存在文档更新但实际版本未发布的情况?
回答
这是AWS文档更新与实际服务区域部署延迟导致的问题,并非版本标签格式变更。
版本发布的区域差异:AWS新的EMR版本会分区域逐步推送部署,官方文档通常会提前更新版本信息,但部分区域可能需要几个小时甚至更久才能完成版本上线。你执行
aws emr list-release-labels返回的是当前操作区域内可用的版本,说明该区域还未完成emr-6.8.0的部署。验证区域可用性的方法:
可以尝试指定AWS的核心区域(比如us-east-1)执行命令,查看该区域是否已支持emr-6.8.0:aws emr list-release-labels --region us-east-1如果返回结果包含emr-6.8.0,即可确认是区域部署延迟的问题。
获取正确版本标签的可靠方式:
- 使用
aws emr list-release-labels命令(务必指定你要部署集群的目标区域),这是当前区域可用版本的最准确来源; - 登录AWS EMR控制台,进入集群创建页面,在"Release label"下拉选项中查看当前区域支持的所有版本。
- 使用
临时解决方案:
- 若需立即使用emr-6.8.0,可切换到已完成版本部署的区域创建集群;
- 若不需要紧急升级,可继续使用emr-6.7.0等现有可用版本,等待当前区域完成emr-6.8.0的部署后再进行升级。
内容的提问来源于stack exchange,提问作者AlexLordThorsen
相关产品推荐
相关产品推荐

