当前位置: 首页 > 知识库问答 >
问题:

如何使用“s3a://”方案使配置单元2.2.1成功地与AWS S3集成

广亮
2023-03-14

我已经阅读了关于使用s3a:/方案将Apache Hive 2.1.1与AWS S3集成的各种公开文档,为hadoop/etc/hadoop/core-site.xmlHive/conf/hive-site.xml配置fs.s3a.access.keyfs.s3a.secret.key

我现在可以让hdfs dfs-ls s3a://[bucket-name]/正常工作(它返回该bucket的s3 ls)。因此我知道我的cred、bucket访问和整个Hadoop设置是有效的。

hdfs dfs -ls s3a://[bucket-name]/

drwxrwxrwx   - hdfs hdfs          0 2017-06-27 22:43 s3a://[bucket-name]/files
...etc. 

hdfs dfs -ls s3a://[bucket-name]/files

drwxrwxrwx   - hdfs hdfs          0 2017-06-27 22:43 s3a://[bucket-name]/files/my-csv.csv

但是,当我试图从配置单元访问相同的s3资源时,例如使用位置's3a://[bucket-name]/files/'运行任何创建模式创建外部表语句,它将失败。

例如:

如果不存在mydb.my_table(my_table_id string,my_tstamp timestamp,my_sig bigint)行格式分隔字段,以“,”位置“s3a://[bucket-name]/files/'终止,则创建外部表;

失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1。MetaException(消息:获取异常:java.nio.file.accessdeniedexception S3a://[bucket-name]/files:getFileStatus on S3a://[bucket-name]/files:com.amazonaws.services.S3.model.amazons3异常:禁止(服务:Amazon S3;状态码:403;错误码:403禁止;请求ID:C9CF3F9C50EF08D1),S3扩展请求ID:T2XZ87REKVHKVZF+HDPToH7CA7ParpIP6IRMWNDQNFFDWERKZUAIGBPVXILV6USD0RSXM9YMM6I=)

这毫无意义。我可以访问bucket,就像在hdfs测试中看到的那样。并且我已经向hive-site.xml添加了适当的creds。

注意:使用相同的cred,我可以为's3n://'和's3a://'工作。它只是对“s3a://”失败。

有人知道这个方程式缺了什么吗?

共有1个答案

江恩
2023-03-14

您是否将EMR用于配置单元环境?如果是,则EMR不支持S3A。

 类似资料:
  • 本文向大家介绍Spring集成jedis的配置与使用简单实例,包括了Spring集成jedis的配置与使用简单实例的使用技巧和注意事项,需要的朋友参考一下 jedis是redis的java客户端,spring将redis连接池作为一个bean配置。 redis连接池分为两种,一种是“redis.clients.jedis.ShardedJedisPool”,这是基于hash算法的一种分布式集群re

  • 我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?

  • 本文向大家介绍PHP单元测试配置与使用方法详解,包括了PHP单元测试配置与使用方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP单元测试配置与使用方法。分享给大家供大家参考,具体如下: php与其他语言不太一样,单元测试需要自己安装和配置,相对麻烦一点,不过单元测试对于提高库的稳定性和健壮性还是非常给力的,下面教大家怎么配置PHP单元测试 注意:php需升级到7.1版本以上 1

  • 我刚来锡库利。我想在我的python(2.7版)单元测试(实际上是selenium webdriver测试)中添加sikuli特性(能够检查网页上是否显示了特定的图像)。有什么建议怎么做吗?我尝试安装,但出现错误(因为它可能需要Cython)。

  • 一、前言 Facebook提供了“Integrating with Existing Apps”方案,但是需要使用pod install, 会出现版本更新不及时。那么如何手动集成到Native代码中去呢?这里提供一个简单的Demo供参考。 二、构建步骤 1. 创建 React Native项目,目的是获取最新的React Native包 $ react-native init test 2