谷歌云存储与 HDFS

时间:2021-04-16 12:27:39

标签: google-cloud-storage hdfs google-cloud-dataflow

在 HDFS 中,您可以创建具有多个分区的文件。这让我开始思考谷歌云存储的几个问题

  1. 我可以在 Google Cloud Storage 中将我的文件分散到多个节点中吗?
  2. 我可以创建一个包含 N 个空分区并在每个分区中填充 N 个节点的文件吗?

当我们的数据流经系统到最后时,这允许我们将客户提供给我们的任何大小的文件映射到单个输出文件(即使输出文件分布在一组节点上)。

嗯,大声思考,除了通过 map/reduce 之外,我不知道如何在 Hadoop 中做到这一点。 hadoop HDFS 有没有办法

  1. 创建一个包含 N 个空分区的文件
  2. 让我的 N 个节点写入这些分区

谢谢, 院长

1 个答案:

答案 0 :(得分:2)

我认为您在问题中隐含地假设了有关 GCS 的内容,比如它或多或少地像 HDFS 一样实现,或者它支持部分写入,就像文件系统一样。事实并非如此,GCS 是一个 blob(或对象)存储系统,而不是文件系统。我会尽我所能回答你的直接问题,但这个序言希望能有所帮助:

<块引用>

我可以在 Google Cloud Storage 中将我的文件分散到多个节点中吗?

您无法控制 GCS 如何跨节点分配对象(或对象的一部分)。话虽如此,出于性能和冗余原因,GCS 会自动将大型对象拆分到许多“节点”。

<块引用>

我可以创建一个包含 N 个空分区并在每个分区中填充 N 个节点的文件吗?

对象在 GCS 中是不可变的。创建它们后,您将无法更改它们(您可以创建新版本)。简而言之,不,您不能完全做您要求的事情,但是您可以做具有类似效果的事情,例如:

  1. 你可以有 N 个进程,每个进程创建自己的对象,然后
  2. 将这些对象组合成一个更大的对象,这是一个纯粹的服务端操作,所以效率很高。

请注意,compose 一次限制为 32 个对象,但您可以使用多个 compose 操作递归构建越来越大的对象。