如何使用“s3a://”方案使Hive 2.2.1与AWS S3成功集成

时间:2017-06-27 23:19:51

标签: amazon-web-services hadoop amazon-s3 hive

我已经遵循各种已发布的文档,使用s3a://方案将Apache Hive 2.1.1与AWS S3集成,配置fs.s3a.access.keyfs.s3a.secret.keyhadoop/etc/hadoop/core-site.xml的{​​{1}}。

我正处于能够让hive/conf/hive-site.xml正常工作的位置(它返回该桶的s3 ls)。所以我知道我的信誉,存储桶访问和整体Hadoop设置是有效的。

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

但是,当我尝试从hive访问相同的s3资源时,例如使用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 运行任何CREATE SCHEMACREATE EXTERNAL TABLE语句,都会失败。

例如:

  

创建外部表如果不存在mydb.my_table(my_table_id字符串,my_tstamp时间戳,my_sig bigint)行格式删除字段终止于','LOCATION's3a:// [bucket-name] / files /';

我一直收到这个错误:

  

失败:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。 MetaException(消息:异常:java.nio.file.AccessDeniedException s3a:// [bucket-name] / files:s3a上的getFileStatus:// [bucket-name] / files:com.amazonaws.services.s3.model。 AmazonS3Exception:Forbidden(Service:Amazon S3; Status Code:403; Error Code:403 Forbidden; Request ID:C9CF3F9C50EF08D1),S3 Extended Request ID:T2xZ87REKvhkvzf + hdPTOh7CA7paRpIp6IrMWnDqNFfDWerkZuAIgBpvxilv6USD0RSxM9ymM6I =)

这没有任何意义。我可以在hdfs测试中看到,可以访问存储桶。我已经为hive-site.xml添加了适当的信誉。

注意:使用相同的信用卡,我可以使用's3n://'和's3a://'。它只是's3a://'而失败。

任何人都知道这个等式中缺少什么?

1 个答案:

答案 0 :(得分:0)

您是否在Hive环境中使用EMR?如果是这样,EMR不支持s3a。