如何使用 google 云将文件从 Dataproc 中的 GCS 存储桶复制到 HDFS?
How to copy a file from a GCS bucket in Dataproc to HDFS using google cloud?
我已将数据文件上传到我在 Dataproc 中的项目的 GCS 存储桶。现在我想将该文件复制到 HDFS。我该怎么做?
单个 "small" 文件
您可以使用 hdfs
复制命令将单个文件从 Google 云存储 (GCS) 复制到 HDFS。请注意,您需要 运行 从集群中的一个节点执行此操作:
hdfs dfs -cp gs://<bucket>/<object> <hdfs path>
这是可行的,因为 hdfs://<master node>
是默认文件系统。如果需要,您可以显式指定方案和 NameNode:
hdfs dfs -cp gs://<bucket>/<object> hdfs://<master node>/<hdfs path>
请注意,GCS 对象使用 gs:
方案。路径应与使用 gsutil
.
时的路径相同
对于 "large" 文件或大文件目录
当您使用 hdfs dfs
时,数据通过您的本地计算机传输。如果要复制大型数据集,您可能希望使用 DistCp 在集群上并行执行此操作:
hadoop distcp gs://<bucket>/<directory> <HDFS target directory>
有关详细信息,请参阅 DistCp documentation。
考虑在 GCS 上保留数据
最后,考虑将您的数据留在 GCS 上。因为 GCS 连接器实现了 Hadoop 的分布式文件系统接口,所以它可以在 大多数 情况下用作 HDFS 的直接替代品。值得注意的例外是当您依赖(大多数)原子 file/directory 操作或想要使用延迟敏感的应用程序时 HBase. The Dataproc HDFS migration guide 可以很好地概述数据迁移。
我已将数据文件上传到我在 Dataproc 中的项目的 GCS 存储桶。现在我想将该文件复制到 HDFS。我该怎么做?
单个 "small" 文件
您可以使用 hdfs
复制命令将单个文件从 Google 云存储 (GCS) 复制到 HDFS。请注意,您需要 运行 从集群中的一个节点执行此操作:
hdfs dfs -cp gs://<bucket>/<object> <hdfs path>
这是可行的,因为 hdfs://<master node>
是默认文件系统。如果需要,您可以显式指定方案和 NameNode:
hdfs dfs -cp gs://<bucket>/<object> hdfs://<master node>/<hdfs path>
请注意,GCS 对象使用 gs:
方案。路径应与使用 gsutil
.
对于 "large" 文件或大文件目录
当您使用 hdfs dfs
时,数据通过您的本地计算机传输。如果要复制大型数据集,您可能希望使用 DistCp 在集群上并行执行此操作:
hadoop distcp gs://<bucket>/<directory> <HDFS target directory>
有关详细信息,请参阅 DistCp documentation。
考虑在 GCS 上保留数据
最后,考虑将您的数据留在 GCS 上。因为 GCS 连接器实现了 Hadoop 的分布式文件系统接口,所以它可以在 大多数 情况下用作 HDFS 的直接替代品。值得注意的例外是当您依赖(大多数)原子 file/directory 操作或想要使用延迟敏感的应用程序时 HBase. The Dataproc HDFS migration guide 可以很好地概述数据迁移。