我想获得在spark作业中创建dataproc集群时使用的标志。
例如,我使用以下命令行创建集群:gcloud dataproc clusters create cluster-name
--region=region
--bucket=bucket-name
--temp-bucket=bucket-name
other args ...
在我的scala spark作业中,我想获得桶名和其他参数如何做到这一点,我知道如果我想获得我的作业的参数,我必须这样做:
val sc = sparkSession.sparkContext
val conf_context=sc.getConf.getAll
conf_context.foreach(println)
请帮忙好吗?
感谢Dataproc还向GCE实例元数据发布一些属性,包括桶名。您还可以指定自己的元数据。参见https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/metadata。
这些将通过元数据服务器提供给您。例如,如果您想读取桶名,可以运行
curl -s -H Metadata-Flavor:Google http://metadata.google.internal/computeMetadata/v1/instance/attributes/dataproc-bucket
您可以使用gcloud dataproc clusters description shell命令获取集群的详细信息:
gcloud dataproc clusters describe $clusterName --region $clusterRegion
要从该命令中获取桶名,可以使用grep
:
BUCKET_NAME=$(gcloud dataproc clusters describe $clusterName
--region $clusterRegion
| grep 'configBucket:'
| sed 's/.* //')
你应该能够在Scala中执行这个,看看这篇文章。