首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Google Cloud Dataproc集群时出错-无法访问初始化代理脚本

创建Google Cloud Dataproc集群时出错-无法访问初始化代理脚本
EN

Stack Overflow用户
提问于 2020-01-16 17:50:59
回答 2查看 1.2K关注 0票数 1

我正在尝试使用以下命令创建我的第一个Google Cloud Dataproc集群:

代码语言:javascript
复制
gcloud dataproc clusters create hive-cluster    \ 
    --scopes sql-admin  \   
    --image-version 1.3  \   
    --initialization-actions "gs://goog-dataproc-${PROJECT}:${REGION}:hive-metastore" \
    --master-machine-type n1-standard-1 \
    --master-boot-disk-size 15 \
    --num-workers 2 \
    --worker-machine-type n1-standard-1 \
    --worker-boot-disk-size 15 \
    --region us-east1 \
    --zone us-east1-b

但是,我得到以下错误:

代码语言:javascript
复制
    Dataproc could not validate the initialization action using the service-owned service accounts. Cluster creation may still succeed if the initialization action is accessible from GCE VMs.
    Reason: service-1456309104734317@dataproc-accounts.iam.gserviceaccount.com does not have storage.objects.get access to goog-dataproc-initialization-actions-us-east1/cloud-sql-proxy/cloud-sql-proxy.sh.
    Waiting for cluster creation operation...done.
    ERROR: (gcloud.dataproc.clusters.create) Operation [projects/traits-seater-824109/regions/us-east1/operations/5b36fb82-ade2-3d5f-a6bd-cb1a206bb54e] failed: Multiple Errors:
     - Error downloading script 'gs://goog-dataproc-initialization-actions-us-east1/cloud-sql-proxy/cloud-sql-proxy.sh': 1456309104734317-compute@developer.gserviceaccount.com does not have storage.objects.get access to goog-dataproc-initialization-actions-us-east1/cloud-sql-proxy/cloud-sql-proxy.sh.

我检查了IAM中的权限,并将storage->Object viewer角色分配给了上面错误消息中提到的服务帐户,但我仍然收到相同的错误。有什么建议如何克服这个错误吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-18 05:55:06

Dataproc的初始化操作的区域托管版本的权限设置似乎存在一个临时问题--从长远来看,您确实应该使用这些区域副本来更好地隔离初始化操作的区域可靠性,并避免初始化操作的跨区域复制,但在此期间,您可以使用init操作的共享“全局”副本:

代码语言:javascript
复制
gcloud dataproc clusters create hive-cluster    \ 
--initialization-actions gs://dataproc-initialization-actions/cloud-sql-proxy/cloud-sql-proxy.sh \
...
票数 2
EN

Stack Overflow用户

发布于 2020-01-17 20:25:12

问题可能来自您在创建集群时提供的scopes。您只需要限制您的集群访问sql-admin接口(https://www.googleapis.com/auth/sqlservice.admin)。

您可能需要添加storage-ro作用域(或https://www.googleapis.com/auth/devstorage.read_only):

代码语言:javascript
复制
gcloud dataproc clusters create hive-cluster \ 
    --scopes sql-admin,storage-ro \
    [...]

如果没有storage-ro作用域,即使存储桶goog-dataproc-initialization-actions-us-east1是公共的,我认为Dataproc集群也无法从GCS检索文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59766868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档