AWS Glue Crawler爬取大JSON文件遇java.io.EOFException求助排查
AWS Glue爬虫处理大型GZIP JSON文件时EOFException的排查建议
检查GZIP文件完整性
- 本地下载目标GZIP文件,用
gzip -t filename.json.gz命令校验是否损坏。如果命令报错,说明文件上传时出现截断或损坏,重新上传即可。 - 对比S3中文件的大小和本地源文件的字节数,确认两者一致,避免上传过程中丢失数据。
- 本地下载目标GZIP文件,用
验证JSON格式合法性
- 先解压GZIP文件,用
jq . filename.json命令检查整个JSON结构是否完整,有没有语法错误(比如缺闭合括号、逗号误用)。大型JSON文件很容易出现末尾截断或格式不规范的问题。 - 确认JSON格式类型:如果是单行大JSON数组,Glue爬虫可能因内存限制解析失败,尝试将其拆分为多行独立JSON对象(每行一个完整JSON)后再测试。
- 先解压GZIP文件,用
调整Glue爬虫资源配置
- 进入爬虫配置页,调高使用的DPU数量(比如从默认2个加到4个),提升处理大型文件的算力。
- 延长爬虫的超时时间,避免因文件过大导致处理超时触发EOFException。
测试文件分片处理
- 将原大型JSON文件拆分成几个较小的分片(比如按1GB拆分),分别上传到S3测试。如果分片能被正常解析,说明原文件大小超出了Glue爬虫单文件处理的默认阈值。
检查Glue版本兼容性
- 确认爬虫使用的Glue版本,部分旧版本对大型GZIP文件的处理存在已知bug,尝试升级到最新稳定版(比如Glue 4.0)后重新运行爬虫。
内容的提问来源于stack exchange,提问作者dsal1951
相关产品推荐
相关产品推荐

