Google 云存储与 HDFS

Google Cloud Storage vs. HDFS

在 HDFS 中,您可以创建一个包含多个分区的文件。这让我开始思考 google 云存储

的几个问题
  1. 我可以在 Google Cloud Storage 中做同样的事情吗?
  2. 我可以创建一个包含 N 个空分区并在每个分区中填充 N 个节点的文件吗?

当我们的数据流经系统到达末端时,这使我们能够将客户提供给我们的任何大小的文件映射到单个输出文件(即使输出文件分布在节点集群上)。

嗯,大声思考,除了通过 map/reduce,我不确定如何在 Hadoop 中执行此操作。 hadoop HDFS中有没有办法

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

谢谢, 院长

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

Can I do the same in Google Cloud Storage spreading out my file across many nodes?

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

Can I create a file with say N empty partitions and have N nodes filling in each partition?

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

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

请注意,一次只能组合 32 个对象,但您可以通过多个组合操作递归地构建越来越大的对象。