gpt4 book ai didi

scala - Spark on YARN 和 spark-bigquery 连接器

转载 作者:行者123 更新时间:2023-12-03 16:03:50 28 4
gpt4 key购买 nike

我开发了一个 Scala Spark 应用程序,用于将数据直接流式传输到 Google BigQuery,使用 Spotify 的 spark-bigquery 连接器。

在本地它工作正常,我已经按照这里的描述配置了我的应用程序 https://github.com/spotify/spark-bigquery

val ssc = new StreamingContext(sc, Seconds(120))
val sqlContext = new SQLContext(sc)
sqlContext.setGcpJsonKeyFile("/opt/keyfile.json")
sqlContext.setBigQueryProjectId("projectid")
sqlContext.setBigQueryGcsBucket("gcsbucketname")
sqlContext.setBigQueryDatasetLocation("US")

但是当我在 YARN 集群上的 Spark 上提交应用程序时,该作业找不到 GOOGLE_APPLICATION_CREDENTIALS 环境变量...
The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials.

我将变量作为 root 用户的 OS env var 设置为包含所需凭据的 .json 文件,但它仍然失败。

我也尝试过以下行
System.setProperty("GOOGLE_APPLICATION_CREDENTIALS", "/opt/keyfile.json")

没有成功。

知道我缺少什么吗?

谢谢,

莱昂纳多

最佳答案

文件建议:
“需要使用 conf/spark-defaults.conf 文件中的 spark.yarn.appMasterEnv.[EnvironmentVariableName] 属性设置环境变量。
在 spark-env.sh 中设置的环境变量不会反射(reflect)在集群模式下的 YARN Application Master 进程中。”

关于scala - Spark on YARN 和 spark-bigquery 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416419/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com