重置hadoop aws密钥以上载到不同usernam下的另一个s3 bucket

2024-06-17 17:51:35 发布

您现在位置:Python中文网/ 问答频道 /正文

很抱歉,这个问题的标题很糟糕,但这是我的设想

  1. 我有一个Pypark databricks笔记本,我正在其中加载其他笔记本。你知道吗
  2. 其中一个笔记本正在设置一些红移配置,以便从红移(一些临时S3存储桶)读取数据。我无法更改任何配置。你知道吗
  3. 在这种配置下,这两个函数都返回True。这在步骤5中很有用

sc._jsc.hadoopConfiguration().get("fs.s3n.awsAccessKeyId") == None sc._jsc.hadoopConfiguration().get("fs.s3n.awsSecretAccessKey") == None

  1. 我有一个apachespark模型,我需要将它存储到我的S3 bucket中,这个bucket与为redshift配置的bucket不同
  2. 我正在使用boto3处理其他对象并存储到AWS中,它工作正常,但我认为我们不能像处理其他对象那样处理apache模型。因此,我必须使用model的save方法和s3url,为此,我设置了aws凭证,就像这样,这样就可以了(如果同一集群中没有人不干扰aws配置的话)。你知道吗

sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", AWS_ACCESS_KEY_ID) sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", AWS_SECRET_ACCESS_KEY)

  1. 在我保存这个模型之后,我还需要从redshift读取其他数据,这里它失败了,出现以下错误。我认为redshift对S3的配置会随着上面的代码而改变。你知道吗

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1844.0 failed 4 times, most recent failure: Lost task 0.3 in stage 1844.0 (TID 63816, 10.0.63.188, executor 3): com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: 3219CD268DEE5F53; S3 Extended Request ID: rZ5/zi2B+AsGuKT0iW1ATUyh9xw7YAt9RULoE33WxTaHWUWqHzi1+0sRMumxnnNgTvNED30Nj4o=), S3 Extended Request ID: rZ5/zi2B+AsGuKT0iW1ATUyh9xw7YAt9RULoE33WxTaHWUWqHzi1+0sRMumxnnNgTvNED30Nj4o=

现在我的问题是为什么我不能再次读取数据。如何将redshift的S3配置重置为在将模型保存到S3之后显式设置之前的方式。你知道吗

我也不明白的是,最初的aws值是None,当我自己尝试用None重置时,它会返回一个错误

The value of property fs.s3n.awsAccessKeyId must not be null

现在,我正在考虑解决办法,我将保存在databricks本地模型,然后将其压缩并上传到S3,但这仍然只是一个补丁。我想以适当的方式做这件事。你知道吗

很抱歉对代码使用引号框,因为出于某种原因,它不适用于多行代码

提前谢谢!!!你知道吗


Tags: 模型noneawsidredshifts3bucket笔记本
1条回答
网友
1楼 · 发布于 2024-06-17 17:51:35

重新导入设置红移连接的笔记本。或者找到它的位置并复制代码。你知道吗

如果您没有权限修改要导入的笔记本,那么我猜您没有权限在集群上设置角色。如果使用角色,则不需要aws密钥。你知道吗

相关问题 更多 >