2016-07-16 105 views
3

我開發了一個Scala Spark應用程序,用於通過Spotify使用spark-bigquery連接器將數據直接傳輸到Google BigQuery中。Yarn和spark-bigquery連接器上的Spark

本地它工作正常,我已經配置我的應用程序如這裏所描述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") 

,但是當我在我的星火提交紗線集羣應用程序上的作業失敗找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") 

沒有成功。

任何想法我失蹤?

謝謝

萊昂納多

+0

你能分享一些代碼片段嗎? –

+0

我已經添加了一些代碼,請讓我知道如果您需要更多... –

回答

2

文檔建議: 「環境變量需要使用spark.yarn.appMasterEnv設置[EnvironmentVariableName]屬性在你的conf /火花defaults.conf文件。 。 在spark-env.sh中設置的環境變量不會反映在集羣模式下的YARN Application Master進程中。「

+0

非常感謝你的人!有用。 –

+0

如果您不想編輯全局配置文件,也可以在提交這樣的作業時(如果在YARN上運行)設置該配置文件: 'spark-sumbit --conf spark.yarn.appMasterEnv.GOOGLE_APPLICATION_CREDENTIALS =/opt /keyfile.json .. jar' – Arvidaa

相關問題