在GCP Data Proc上运行bash脚本

问题描述 投票:1回答:2

我想在Data Proc上运行Shell脚本,它将使用参数执行我的Pig脚本。这些参数始终是动态的,由shell脚本计算。

当前,这些脚本在script-runner.jar的帮助下在AWS上运行。我不确定如何将其移至dataproc。是否有类似可用于数据处理的内容?

否则,我将不得不更改所有脚本,并在Pig sh或pig fs的帮助下计算Pig中的参数?

google-cloud-dataproc
2个回答
0
投票

目前,Dataproc中没有shell作业。作为替代方案,您可以使用带有sh命令的use pig作业,该命令会分叉您的shell脚本,然后可以(再次)运行您的pig作业。 (如果您更喜欢python,则可以类似地使用pyspark)。例如-

# cat a.sh
HELLO=hello
pig -e "sh echo $HELLO"
# pig -e "sh $PWD/a.sh"

0
投票

[正如Aniket提到的,pig sh本身将被视为Dataproc作业的脚本运行程序;与其自己制作Pig脚本,不如使用Pig来引导任何抽象的bash脚本。例如,假设您有一个任意的bash脚本hello.sh

gsutil cp hello.sh gs://${BUCKET}/hello.sh
gcloud dataproc jobs submit pig --cluster ${CLUSTER} \
    -e 'fs -cp -f gs://${BUCKET}/hello.sh file:///tmp/hello.sh; sh chmod 750 /tmp/hello.sh; sh /tmp/hello.sh'

pig fs命令使用Hadoop路径,因此要从GCS复制脚本,必须将其复制到指定为file:///的目标位置,以确保它位于本地文件系统而不是HDFS上;然后sh命令将自动引用本地文件系统,因此您无需在其中使用file:///

© www.soinside.com 2019 - 2024. All rights reserved.