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

从spark thrift service创建/访问带有s3位置的配置单元外部表时发出问题

蒲勇
2023-03-14

我已经使用hadoop-credential API在一个jceks文件中配置了s3密钥(访问密钥和秘密密钥)。用于相同的命令如下:

hadoop凭据创建fs.s3a.access.key-provider jceks:/hdfs@nn_hostname/tmp/s3creds_test.jceks

现在,当我试图创建一个位于s3中的外部表时,它失败了,但有以下例外:

如果不存在test_table_on_s3(col1字符串,col2字符串)行格式分隔字段,以“,”位置“s3a://bucket_name/kalmesh/”终止,则创建外部表;

异常:错误:org.apache.spark.sql.Execution.QueryExecutionException:失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1。MetaException(消息:Get Exception:java.nio.file.accessdeniedexception s3a://bucket_name/kalmesh:getFileStatus on s3a:/bucket_name/kalmesh:com.amazonaws.services.S3.model.amazons3 Exception:禁止(服务:Amazon S3;状态代码:403;错误代码:403禁止;请求ID:request_id),S3扩展请求ID:extended_request_id=)(状态=,代码=0)

共有1个答案

濮阳默
2023-03-14

我不认为jceks支持FS.S3A。直到Hadoop2.8才有秘密。我不认为;很难从源头上说出来。如果是这种情况,并且您使用的是Hadoop2.7,那么这个秘密就不会被发现。恐怕你得把它放在配置中。

 类似资料:
  • 我正在本地机器上使用beeline在DDL下面运行,并抛出异常。

  • 问题内容: 我每天都在“测试”文件夹下写入文件。例如: 我在创建的LOGS表中看不到任何数据。 但是,我使用创建表 我可以看到那几天的记录。 我想在我的HIVE表中的/ test目录下查看所有数据,而且/ test目录每天都填充有新文件。 问题答案: 选项1 为了支持子目录 如果您的Hive版本低于2.0.0,那么 选项2 创建一个分区表 如果使用标准约定保留目录,例如,而不是保留目录,将更易于管

  • 我正在尝试在ORC文件上创建外部配置单元表。 但当我试图在创建的表上执行select操作时,会出现以下错误: 有什么建议吗??

  • 需要一些建议。在配置单元数据库中,是否可以创建具有如下空间列的表 得到如下错误

  • 我正在将 Azure 数据砖与数据砖运行时 5.2 和 Spark 2.4.0 配合使用。我以两种不同的方式设置了外部 Hive 表: - 数据砖增量表,其中数据存储在 Azure 数据湖存储 (ADLS) 第 2 代中,该表是使用位置设置创建的,该位置设置指向 ADLS 第 2 代中的已装载目录。- 一个常规的数据帧,作为表保存到 ADLS Gen 2,这次不使用挂载,而是使用我使用 spark

  • 1-创建了源表 2-将数据从本地加载到源表 3-创建了另一个带有分区的表-partition_table 我不确定如何在外部表中进行分区。有人能帮我一步一步地描述一下吗?。