Apache spark 如何获取集群信息以调用RESTAPI(从驱动程序中)?
我想使用Spark REST API获取指标并发布到cloud watch。但RESR API类似于:Apache spark 如何获取集群信息以调用RESTAPI(从驱动程序中)?,apache-spark,yarn,emr,amazon-cloudwatch,Apache Spark,Yarn,Emr,Amazon Cloudwatch,我想使用Spark REST API获取指标并发布到cloud watch。但RESR API类似于: val url = "http://<host>:4040/api/v1/applications/<app-name>/stages" 我得到: java.io.IOException: Server returned HTTP response code: 500 for URL: http://112.21.2.151:4040/api/v1/applicat
val url = "http://<host>:4040/api/v1/applications/<app-name>/stages"
我得到:
java.io.IOException: Server returned HTTP response code: 500 for URL: http://112.21.2.151:4040/api/v1/applications/application_1515337161733_0001
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at java.net.URL.openStream(URL.java:1045)
at scala.io.Source$.fromURL(Source.scala:141)
at scala.io.Source$.fromURL(Source.scala:131)
... 64 elided
如果您知道主机,则可以查询
应用程序
端点:
http://localhost:4040/api/v1/applications
并解析结果以获得应用程序id
要从应用程序中获取applicationId
和host
,请使用相应的SparkContext
方法:
val spark: SparkSession
spark.sparkContext.applicationId
spark.sparkContext.uiWebUrl
val spark: SparkSession
spark.sparkContext.applicationId
spark.sparkContext.uiWebUrl