【发布时间】:2021-07-26 11:47:57
【问题描述】:
我可以知道如何使用气流在 DataProc 集群上执行 HDFS 复制命令。 使用气流创建集群后,我必须将一些 jar 文件从 Google 存储复制到 HDFS 主节点文件夹。
【问题讨论】:
标签: hadoop google-cloud-platform airflow google-cloud-dataproc
我可以知道如何使用气流在 DataProc 集群上执行 HDFS 复制命令。 使用气流创建集群后,我必须将一些 jar 文件从 Google 存储复制到 HDFS 主节点文件夹。
【问题讨论】:
标签: hadoop google-cloud-platform airflow google-cloud-dataproc
您可以使用类似这样的方式在 dataproc 集群上执行 hdfs 命令
gcloud dataproc jobs submit hdfs 'ls /hdfs/path/' --cluster=my-cluster --
region=europe-west1
最简单的方法是[1]通过
gcloud dataproc jobs submit pig --execute 'fs -ls /'
或以其他方式 [2] 作为其他 shell 命令的包罗万象。
您可以使用 hdfs copy 命令将单个文件从 Google Cloud Storage (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>
当您使用 hdfs dfs 时,数据通过您的本地计算机进行管道传输。如果您要复制大型数据集,您可能希望使用 DistCp 在集群上并行执行此操作:
hadoop distcp gs://<bucket>/<directory> <HDFS target directory>
请参阅 [3] 了解详情。
[1]https://pig.apache.org/docs/latest/cmds.html#fs
[2]https://pig.apache.org/docs/latest/cmds.html#sh
[3]https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html
【讨论】:
我不确定您的用例是否通过气流来执行此操作,因为如果它是一次性设置,那么我认为我们可以直接在 dataproc 集群上运行命令。但是找到了一些可能会有所帮助的链接。据我了解,我们可以使用 BashOperator 并运行命令。
【讨论】: