amazon-web-services - Glue 作业因 Amazon S3 超时而失败
问题描述
我一直在学习 AWS 胶水教程 ( https://docs.aws.amazon.com/glue/latest/dg/getting-started.html ),现在我正在尝试配置我的第一份工作将 RDS 表中的所有数据复制到 S3 上的 parquet 文件中。
我已经成功:
- 创建了 S3 VPC 终端节点
- 创建了胶水 RDS 连接和爬虫
- 成功将 RDS 表元数据添加到目录中。
要创建我的工作:
- 从胶水仪表板中选择“添加作业”
- 给作业一个名称,分配用于上述 RDS 连接的相同角色(因为它分配了 AWSGlueServiceRole 策略),选择“AWS Glue 生成的建议脚本”并将其他字段保留为默认值。
- 从目录中选择所需的 RDS 表作为输出源选择“在您的数据目标中创建表”,使用 s3 作为数据源,parquet 作为格式,作为目标选择新创建的输出 s3 文件夹 - 'aws-glue-测试 etl/数据'
- 单击下一步后,我将所有字段映射保留为默认值。
- 保存作业并编辑脚本
当我使用默认值运行作业时,我得到以下日志输出:
--conf spark.hadoop.yarn.resourcemanager.connect.max-wait.ms=60000 --conf spark.hadoop.fs.defaultFS=hdfs://ip-10-0-1-88.eu-west-1.compute.internal:8020 --conf spark.hadoop.yarn.resourcemanager.address=ip-10-0-1-88.eu-west-1.compute.internal:8032 --conf spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true --conf spark.dynamicAllocation.minExecutors=1 --conf spark.dynamicAllocation.maxExecutors=18 --conf spark.executor.memory=5g --conf spark.executor.cores=4 --JOB_ID j_20380e2f5d565a53d8bd397904dd210cbca826f3825ae8ff6b5a23e8f7bca45d --JOB_RUN_ID jr_6d60e2930a43a06edf6b6e8307171e88bd754ac5f9e66f2eaf5373e570b61280 --scriptLocation s3://aws-glue-scripts-558091818291-eu-west-1/MarcFletcher/UpdateAccountsExport-py --job-bookmark-option job-bookmark-disable --job-language python --TempDir s3://aws-glue-temporary-558091818291-eu-west-1/MarcFletcher --JOB_NAME UpdateAccountsExport-py
YARN_RM_DNS=ip-10-0-1-88.eu-west-1.compute.internal
Detected region eu-west-1
JOB_NAME = UpdateAccountsExport-py
Specifying eu-west-1 while copying script.
S3 copy with region specified failed. Falling back to not specifying region.
以及以下错误输出:
fatal error: HTTPSConnectionPool(host='aws-glue-scripts-558091818291-eu-west-1.s3.eu-west-1.amazonaws.com', port=443): Max retries exceeded with url: /MarcFletcher/UpdateAccountsExport-py (Caused by ConnectTimeoutError(<botocore.awsrequest.AWSHTTPSConnection object at 0x7f9b11afbf10>, 'Connection to aws-glue-scripts-558091818291-eu-west-1.s3.eu-west-1.amazonaws.com timed out. (connect timeout=60)'))
Error downloading script: fatal error: HTTPSConnectionPool(host='aws-glue-scripts-558091818291-eu-west-1.s3.eu-west-1.amazonaws.com', port=443): Max retries exceeded with url: /MarcFletcher/UpdateAccountsExport-py (Caused by ConnectTimeoutError(<botocore.awsrequest.AWSHTTPSConnection object at 0x7fe752548f10>, 'Connection to aws-glue-scripts-558091818291-eu-west-1.s3.eu-west-1.amazonaws.com timed out. (connect timeout=60)'))
我已经查看了故障排除指南(https://docs.aws.amazon.com/glue/latest/dg/glue-troubleshooting-errors.html),但没有找到任何潜在的解决方案。自动选择的区域 eu-west-1 是正确的。
如果有人能指出工作出错的地方,那将不胜感激。
解决方案
最有可能的安全组端口阻塞问题。
检查附加到粘合连接的 AWS 安全组出口规则,允许 443 端口上的 TCP 连接到所有
推荐阅读
- c++ - How to declare STL style C++ hash map iterator?
- php - Google.visualization.dashboard not rendering with json array php
- spring - 尾随 lambda 的上下文
- django - 由于包含“!”而导致的 Django SECRET_KEY 错误 在秘钥中
- sql-server - 无法将数据库架构复制到另一个 SQL Server 实例
- redis - 如何从 rq 中排队的函数获取返回值?
- system-verilog - always_ff 或 always_comb 用于在简单的 TestBench 中生成时钟
- spring-boot - 使用 Apigee 和 Okta 的 Spring Boot
- hybris - 如何查看是否在 hybris 中创建了关系?
- java - ZipEntry 未正确存储图像