【发布时间】:2017-10-20 16:06:42
【问题描述】:
我已经创建了一个 Google Dataproc 集群,但需要安装 presto,因为我现在有一个要求。 Presto 是作为 Dataproc here 上的初始化操作提供的,如何在创建集群后运行此初始化操作。
【问题讨论】:
标签: google-cloud-dataproc gcp presto
我已经创建了一个 Google Dataproc 集群,但需要安装 presto,因为我现在有一个要求。 Presto 是作为 Dataproc here 上的初始化操作提供的,如何在创建集群后运行此初始化操作。
【问题讨论】:
标签: google-cloud-dataproc gcp presto
即使在创建集群之后,大多数初始化操作也可能会运行(尽管我没有尝试过 Presto 初始化操作)。
我喜欢运行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 表示不要尝试创建交互式会话(否则您会收到类似“不会分配伪终端,因为 stdin 不是终端”的警告。)gsutil cp gs://dataproc-initialization-actions/presto/presto.sh . && sudo bash presto.sh。但@Kanji Hara 总的来说是正确的。启动新集群非常快速/轻松,因此我们提倡在创建集群时使用初始化操作。
【讨论】:
您可以使用 initialization-actions 参数
前:
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
【讨论】: