【问题标题】:Connecting S3 Buckets to Apache Hive and PrestoDB将 S3 存储桶连接到 Apache Hive 和 PrestoDB
【发布时间】:2018-10-30 05:52:53
【问题描述】:

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

为此,我配置了hive-site.xml 文件并在文件中添加了我的AWS 访问密钥和秘密密钥,如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 无法在上述位置找到 parquet 文件,因为它没有向查询返回任何数据。此文件夹包含多个镶木地板文件。我的问题:

  • Hive 可以一次从所有 parquet 文件中收集数据吗? 与我为外部表定义的架构相同?
  • 我指定的 S3 位置的格式是否正确,或者我是否应该也包括 S3 存储桶的区域(如果是,如何)?

【问题讨论】:

  • 你找到解决办法了吗?

标签: amazon-s3 hive


【解决方案1】:

如果你的数据是分区的,你需要修复表,在某些情况下即使你没有任何分区也必须修复表,在 hive 中使用以下命令:

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

msck 修复表 schema.table;

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 2019-01-18
    • 2023-04-01
    • 2021-06-08
    • 2016-03-31
    • 1970-01-01
    • 2023-01-18
    • 2017-12-24
    • 1970-01-01
    相关资源
    最近更新 更多