0

我正在尝试访问同一个 IBM 帐户下的多个 COS 实例。我看到每个 COS 实例都有不同的 accesskey、secret-key。hive.xml(fs.s3a.access.key,fs.s3a.secret.key) 中的属性对于一个实例一次只能接受一个值。如果我提供多个访问密钥,那么像 access.key1 这样的密钥将无法正常工作,因为配置单元不知道该密钥属于哪个实例。解决此问题的任何建议或替代方法。与只有存储桶的亚马逊 s3 相比,IBM 云存储多了一层 COS 实例——> 存储桶。对于不熟悉 IBM 云的人来说,这个问题可以被认为是,是否可以在同一个 hive 配置中引用两个不同的 s3 帐户。因为这两个不同的 s3 账户会有不同的密钥对。注意:注意多个 cos 实例是 IBM 云的特定术语。在 aws 的上下文中,所有 s3 存储桶都由存储桶标识。

1.多个cos实例的多个hive实例。这件事很有效,但我觉得我们最终可能会有 n 个实例。2. 尝试在 core-site.xml 中添加更多属性,例如 (fs.s3a.secret.key,fs.s3a.secret1.key) 这对第二个实例不起作用。

       <name>fs.s3a.endpoint</name>
       <value>xxxxxxxx</value>
</property>
<property>
     <name>fs.s3a.access.key</name>
     <value>xxxxxxxx</value>
</property>
<property>
     <name>fs.s3a.secret.key</name>
     <value>xxxxxxxx</value>
   </property>```
4

2 回答 2

0

这不是一个不寻常的情况;即使在 AWS S3 中,跨账户的 distcp 也很常见。

Hadoop 2.8+ 支持“每桶配置”,您可以在其中定义各个桶的秘密(和任何其他选项):每桶配置

这应该足够了。

于 2019-06-27T23:28:40.140 回答
0

听起来您使用的是较旧的 IaaS COS 设置。

理想情况下,您应该迁移到启用了 IAM 的较新服务,您可以轻松地将一组凭证用于您想要授予访问权限的任何服务实例或存储桶。这是因为 IAM 会将凭证分配给身份而不是服务实例(或存储帐户,术语可能不一致)。

凭证可以与“服务 ID”相关联,并且“服务 ID”(基本上是非人类用户)可以是访问策略的主题,这些访问策略在您希望该 ID 访问的每个实例上授予角色。

通常,拥有多个实例的主要原因是为了提供更精细的计费 - 对实例中的数据量或存储桶中的对象数量没有实际限制(尽管应该限制实例中的存储桶数量在大多数情况下达到数百个)。

此外,作为一个有趣的事实,“实例”有点用词不当。COS 是一个真正的多租户系统——整个公共云是 COS 的单个实例(IaaS 和 IAM 启用实际上是同一系统的不同窗口)。因此,当您配置一个新的“实例”时,您实际上可以访问在现有系统的可计费实体中创建新的存储桶,但实际上并没有为您创建新的存储桶。

于 2019-06-27T15:21:47.830 回答