将S3存储桶连接到Apache Hive和PrestoDB

时间:2018-03-29 06:29:13

标签: amazon-s3 hive

我正在将S3 Buckets连接到Apache Hive,以便我可以直接通过PrestoDB查询S3中的Parquet个文件。

为此,我配置了hive-site.xml文件,并在文件中添加了AWS Access Key和Secret Key,如this blog post中所述。现在,Parquet文件所在的S3存储桶URL路径如下所示:

https://s3.console.aws.amazon.com/s3/buckets/sb.mycompany.com/someFolder/anotherFolder/?region=us-east-2&tab=overview

创建外部表时,我将S3的位置指定为:

LOCATION "s3://sb.mycompany.com/someFolder/anotherFolder"

Apache Hive 无法在上述位置找到镶木地板文件,因为它没有向查询返回任何数据。此文件夹包含多个镶木地板文件我的问题:

  • Hive可以一次性收集所有镶木地板文件中的数据 我为外部表定义的模式相同吗?
  • 我指定的S3位置格式是否正确,或者我是否应该包含S3存储区域(如果是,如何)?

1 个答案:

答案 0 :(得分:0)

如果数据已分区,则需要修复该表,在某些情况下,即使没有分区也必须修复该表,请在配置单元中使用以下命令:

设置hive.msck.path.validation = ignore;

msck修复表schema.table;