gpt4 book ai didi

apache-pig - 在 GCP Dataproc 上运行 Bash 脚本

转载 作者:行者123 更新时间:2023-12-01 23:09:31 25 4
gpt4 key购买 nike

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

目前,此脚本在 script-runner.jar 的帮助下在 AWS 上运行。我不确定如何将其移动到 Dataproc。是否有类似的东西可用于 Dataproc?

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

最佳答案

正如 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:///那里。

或者,您可以利用方式 --jars用于自动将文件暂存到仅为您的 Pig 作业创建的临时目录中,而不是从 GCS 显式复制到本地目录;您只需将 shell 脚本本身指定为 --jars争论:
gcloud dataproc jobs submit pig --cluster ${CLUSTER} \
--jars hello.sh \
-e 'sh chmod 750 ${PWD}/hello.sh; sh ${PWD}/hello.sh'

或者:
gcloud dataproc jobs submit pig --cluster ${CLUSTER} \
--jars gs://${BUCKET}/hello.sh \
-e 'sh chmod 750 ${PWD}/hello.sh; sh ${PWD}/hello.sh'

在这些情况下,脚本只会临时下载到类似 /tmp/59bc732cd0b542b5b9dcc63f112aeca3 的目录中。并且只存在于养 pig 工作的整个生命周期。

关于apache-pig - 在 GCP Dataproc 上运行 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com