hadoop - 同一个IBM账号下访问多个COS实例

标签 hadoop amazon-s3 hive ibm-cloud ibm-cloud-storage

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

最佳答案

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

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

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

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

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

关于hadoop - 同一个IBM账号下访问多个COS实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56778327/

相关文章:

iOS AWS S3/DynamoDB 云存储视频录制应用设计

amazon-s3 - s3fs卸载: directory is not empty

mysql - 为什么导入到 hive 失败并被已存在的表拒绝?

hadoop - 寻找每个赛季得分最高的主队

hadoop - 如果你把东西存到HBase里,能直接从HDFS访问吗?

hadoop - 在具有连接条件的配置单元中删除的解决方法

java - hadoop: sqoop- 为什么 jdbc 代码是用 reducer 写的?

apache - 根据Apache Sentry中的列值进行访问

sql - 使用Spark优化Hive SQL查询吗?