我已经遵循各种已发布的文档,使用s3a://
方案将Apache Hive 2.1.1与AWS S3集成,配置fs.s3a.access.key
和
fs.s3a.secret.key
和hadoop/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 SCHEMA
或CREATE 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://'而失败。
任何人都知道这个等式中缺少什么?
答案 0 :(得分:0)
您是否在Hive环境中使用EMR?如果是这样,EMR不支持s3a。