使文件可用于工作节点

make files available for worker nodes

我是 GCE 和 spark 的新手。我有一个带有已安装磁盘 (/mnt/spark-data) 的 spark-master-instance,其中包含许多我想在我的 spark-cluster 中处理的文件。 问题:我的工作节点如何访问这些文件?有没有解决方案,我只需要 java-app 中的路径字符串到文件位置?

我也考虑过这个:将文件从 /mnt/spark-data/ 复制到 Google Cloud Storage 中的新存储桶 - 但有 2 个问题: 1)我的主实例没有存储的写权限,所以我不能将我的文件复制到存储桶中,可以吗? 2) 如果 我在存储桶中有文件:如何在我的 java 应用程序中访问它们?

永久磁盘只能以只读方式挂载到多个 GCE VM 实例,因此您将无法写入。您可以考虑使用 NFS 文件共享系统在 VM 实例之间共享文件。

如果您要使用 Google 云存储,那么

我对你第一个问题的回答: 您将需要创建具有对 Google Cloud Storage 的完全访问权限或写入访问权限的 GCE 实例。为此,当您使用 Developers Console 创建 VM 实例时,单击 'Show advanced options' 和 select Full 或 Read/Write 存储。如果您使用 gcloud 命令创建 VM 实例,那么您可以通过这种方式指定对 Google Cloud Storage 的完全访问权限:

$ gcloud compute instances create INSTANCE --scopes storage-full

有关此命令的更多信息,请查看此 link:

https://cloud.google.com/sdk/gcloud/reference/compute/instances/create

我对你第二个问题的回答: GCS 客户端库允许您的 Java 应用程序从 Google 云存储 (GCS) 中的存储桶读取文件和向存储桶写入文件。有关 Google 云存储 Java 客户端库的更多信息,请查看此 link:

https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/