在dataproc上运行Spark-Job时请求不足的身份验证范围

Fre*_*man 5 apache-spark google-cloud-platform google-cloud-dataproc

我试图在谷歌数据中心集群上运行spark作业

 gcloud dataproc jobs submit hadoop --cluster <cluster-name> \
--jar file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
--class org.apache.hadoop.examples.WordCount \
--arg1 \
--arg2 \
Run Code Online (Sandbox Code Playgroud)

但是约伯失误了

 (gcloud.dataproc.jobs.submit.spark) PERMISSION_DENIED: Request had insufficient authentication scopes.
Run Code Online (Sandbox Code Playgroud)

如何添加auth范围来运行JOB?

Den*_*Huo 12

通常,如果您遇到此错误,那是因为从使用VM元数据控制的范围的GCE VM内部运行gcloud ,因为否则安装在本地计算机上的gcloud通常已经使用广泛的范围来包含所有GCP操作.

对于Dataproc访问,在创建运行gcloud的VM时,需要--scopes cloud-platform从CLI 指定,或者如果从Cloud Console UI创建VM,则应选择"允许对所有Cloud API的完全访问":

云控制台创建VM UI  - 身份和API访问

作为上面提到的另一个评论者,现在您还可以更新现有GCE实例的范围以添加CLOUD_PLATFORM范围.