Google cloud dataproc 从编写器在dataproc集群上执行bash脚本

Google cloud dataproc 从编写器在dataproc集群上执行bash脚本,google-cloud-dataproc,google-cloud-composer,Google Cloud Dataproc,Google Cloud Composer,我想在使用简单的shell脚本创建集群后,将jar添加到特定位置的dataproc集群中 我希望在创建dataproc集群后,自动从编写器运行此步骤,下一步是执行bash脚本,该脚本将向dataproc集群添加JAR 您可以建议使用哪个操作员在dataproc群集上执行bash脚本吗?对于在主节点上运行简单的shell脚本,最简单的方法是使用dataproc作业,例如: gcloud dataproc jobs submit pig --cluster ${CLUSTER} --execute

我想在使用简单的shell脚本创建集群后,将jar添加到特定位置的dataproc集群中

我希望在创建dataproc集群后,自动从编写器运行此步骤,下一步是执行bash脚本,该脚本将向dataproc集群添加JAR


您可以建议使用哪个操作员在dataproc群集上执行bash脚本吗?

对于在主节点上运行简单的shell脚本,最简单的方法是使用dataproc作业,例如:

gcloud dataproc jobs submit pig --cluster ${CLUSTER} --execute 'sh echo hello world'
或用于直接复制文件:

gcloud dataproc jobs submit pig --cluster ${CLUSTER} --execute 'fs -cp gs://foo/my_jarfile.jar file:///tmp/localjar.jar'
这些gcloud命令的等效气流操作员设置将与
query
string参数一起使用

如果需要在所有节点上放置jar文件,最好在集群启动时使用复制jar文件:

#!/bin/bash
# copy-jars.sh

gsutil cp gs://foo/my-jarfile.jar /tmp/localjar.jar
如果您需要在集群部署后的某个时间动态确定要复制到所有节点上的jarfiles,则可以采取以下操作:使用初始化操作,持续监视某些hdfs目录中的jarfiles以复制到本地目录,然后在需要jarfile出现在所有节点上时,您可以只提交一个
pig fs
作业,将GCS中的jar文件放入监视目录中的HDFS中

一般来说,您不希望在GCS上自动轮询某些内容,因为GCS列表请求需要花费金钱,而轮询Dataproc集群的HDF则不需要额外的成本