我正在尝试记录在一个Yarn集群中运行的每个Spark应用程序的属性(如Spark.shuffle.compress、Spark.reducer.maxMbInFlight、Spark.executer.instances等属性)。
然而,我不知道这些信息是否记录在任何地方。我知道我们可以通过"yarn"命令访问yarn日志,但我所说的属性没有存储在那里。
是否有访问此类信息的权限?。其想法是跟踪集群中运行的所有应用程序及其属性,以确定哪些应用程序在执行时间中影响最大。
您可以自己记录。。。使用sc.getConf.toDebugString
、sqlContext.getConf("")
或sqlContext.getAllConfs
。
scala> sqlContext.getConf("spark.sql.shuffle.partitions")
res129: String = 200
scala> sqlContext.getAllConfs
res130: scala.collection.immutable.Map[String,String] = Map(hive.server2.thrift.http.cookie.is.httponly -> true, dfs.namenode.resource.check.interval ....
scala> sc.getConf.toDebugString
res132: String =
spark.app.id=local-1449607289874
spark.app.name=Spark shell
spark.driver.host=10.5.10.153
编辑:但是,我在sqlContext.getAllConfs中的1200多个属性中找不到您指定的属性:(否则文档中会显示:
位于http://:4040的应用程序web UI列出了Spark属性在"环境"选项卡中。这是一个检查以确保您的属性设置正确。请注意,只有值通过spark-defaults.conf、SparkConf或命令行将出现。对于所有其他配置属性可以假设使用默认值。