AWS EMR - Hive在S3中创建新表会导致AmazonS3Exception:Bad Request
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS EMR - Hive在S3中创建新表会导致AmazonS3Exception:Bad Request相关的知识,希望对你有一定的参考价值。
我有一个Hive脚本我在EMR中运行,它在S3中创建了一个分区的Parquet表,它还存储在S3中的~40GB gzip压缩文件中。
该脚本运行正常大约4个小时,但达到一个点(非常确定它刚刚完成创建Parquet表)它出错。日志显示错误是:
HiveException: Hive Runtime Error while processing row
引起的:
AmazonS3Exception: Bad Request
我能看到的日志中确实没有更多有用的信息。它正在从S3中读取CSV文件并且它在S3中创建了几个元数据文件,所以我已经确认该实例具有对Bucket的读/写权限。
我真的想不出其他任何事情,我希望日志中有更多关于Hive对S3的“错误请求”的信息。有人有主意吗?
答案
BadRequest是来自AWS的一个相当无意义的响应,如果有任何理由它不喜欢调用者,它会发送它。没有人真正知道发生了什么。
- ASF S3A connector的故障排除文档列出了一些原因,但它们并不完整,并且基于猜测消息消失的原因。
- 如果您的请求ID失败,您可以提交亚马逊的支持请求,以查看他们所看到的内容。
如果它让你感觉更好,当我尝试在对象存储中准确列出一个目录时,我就会看到它,而且我是s3a连接器的共同作者。就像我说的“猜测”。找到答案后,在此处添加评论,或者,如果故障排除文档中没有,请在主题上提交针对hadoop的补丁。
以上是关于AWS EMR - Hive在S3中创建新表会导致AmazonS3Exception:Bad Request的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 EMR/Hive 将数据从 S3 导入 DynamoDB 时处理包含在引号 (CSV) 中的字段