【问题标题】:Logging Spark Configuration Properties记录 Spark 配置属性
【发布时间】:2015-12-10 08:02:34
【问题描述】:

我正在尝试记录在一个 Yarn 集群中运行的每个 Spark 应用程序的属性(诸如 spark.shuffle.compress、spark.reducer.maxMbInFlight、spark.executor.instances 等属性)。

但是我不知道此信息是否记录在任何地方。我知道我们可以通过“yarn”命令访问纱线日志,但我所说的属性并没有存储在那里。

有没有办法访问这种信息?这个想法是跟踪集群中运行的所有应用程序及其属性,以确定哪些应用程序对其执行时间影响最大​​。

【问题讨论】:

    标签: apache-spark hadoop-yarn


    【解决方案1】:

    您可以自己记录...使用sc.getConf.toDebugStringsqlContext.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 或 将出现命令行。对于所有其他配置属性,您 可以假设使用默认值。

    【讨论】:

    • 我对 sc 上下文的属性更感兴趣。至于我正在谈论的属性,您可以在配置文件中提供它们,当您通过 spark-submit 或通过上下文启动应用程序时。问题是,我认为它们没有记录在任何地方,我可能必须弄清楚如何收集它们。
    • 是的。并非所有配置都在 SparkConf 对象或任何其他 conf 对象中。例如,spark.executor.instances 不在 SparkConf 对象中。如果您不将其指定为选项,则它不会在 SparkConf 中定义为键。在 Spark 源代码中使用它时,会检查它是否存在,然后赋予其默认值,例如 at this line
    猜你喜欢
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多