我创建了一个Google Dataproc群集,但需要安装presto,因为我现在有一个要求。 Presto作为Dataproc DataTokens
的初始化操作提供,如何在创建集群后运行此初始化操作。
答案 0 :(得分:1)
您可以使用初始化操作参数
的实施例强>:
gcloud dataproc clusters create $CLUSTERNAME \
--project $PROJECT \
--num-workers $WORKERS \
--bucket $BUCKET \
--master-machine-type $VMMASTER \
--worker-machine-type $VMWORKER \
--initialization-actions \
gs://dataproc-initialization-actions/presto/presto.sh \
--scopes cloud-platform
也许这个脚本可以帮助您:https://github.com/kanjih-ciandt/script-dataproc-datalab
答案 1 :(得分:1)
即使在创建集群之后,大多数init操作也可能会运行(尽管我还没有尝试过Presto init操作)。
我喜欢运行clusters describe
来获取实例名称,然后为每个节点运行类似gcloud compute ssh <NODE> -- -T sudo bash -s < presto.sh
的内容。参考:How to use SSH to run a shell script on a remote machine?。
注意:
--
之后的所有内容都是正常ssh命令的参数-T
表示不尝试创建交互式会话(否则您将收到类似&#34的警告;由于stdin不是终端,因此不会分配伪终端。 &#34)gsutil cp gs://dataproc-initialization-actions/presto/presto.sh . && sudo bash presto.sh
。但是@Kanji Hara一般都是正确的。启动新集群非常快速/轻松,因此我们提倡在创建集群时使用初始化操作。