我正在尝试使用"gcloud dataproc jobs submit spark"提交一个火花作业,我已经将 spark.master 设置为 yarn。当作业在 dataproc 集群上执行时,它是使用 root 用户执行的,有没有办法使用我在 gcloud 中身份验证的谷歌用户运行它或在命令中设置代理用户。
示例命令:-
gcloud dataproc jobs submit spark
--cluster gov-demo --region europe-west4
--class org.apache.spark.examples.WordCount
--jars gs://governance-demo/spark-examples-1.0.jar
-- gs://governance-demo/words1.txt
预期:-
通过谷歌用户提交的工作/提供代理用户的某种方式
实际:-
作业通过根用户提交
.
我一直在研究 gcloud dataproc 命令,你有 2 个标志可以满足您的需求。
例如,您有:
--account
gcloud 全球标志。更多信息在这里。
用于调用的 Google Cloud Platform 用户帐户。重写 此命令调用的默认核心/帐户属性值。
或--impersonate-service-account
标志。
对于此 gcloud 调用,所有 API 请求都将作为给定的服务帐户而不是当前选定的帐户发出。无需为帐户创建、下载和激活密钥即可完成此操作。为了作为服务账户执行操作,您当前选择的账户必须具有包含服务账户的 iam.serviceAccounts.getAccessToken 权限的 IAM 角色。roles/iam.serviceAccountTokenCreator 角色具有此权限,或者您可以创建自定义角色。覆盖此命令调用的默认 auth/impersonate_service_account 属性值。
有关 --模拟服务帐户使用情况的详细信息,请参阅此处。
希望这有帮助。