performance - Spark中有什么方法可以保持每个阶段的运行时间?

标签 performance apache-spark hadoop

我正在测量具有不同资源配置的Spark作业的运行时间,并且需要比较每个阶段的运行时间。我只有在作业运行时才能在UI中看到它们。
我在Hadoop集群上运行我的工作,并使用Yarn作为资源管理器。

有什么办法可以保持每个阶段的运行时间?他们有日志吗?

更新:

我阅读了注释中提到的监视文档,并添加了以下几行,但是它不起作用:

spark-defaults.conf 中:

spark.eventLog.enabled   true
spark.eventLog.dir    hdfs:///[nameNode]:8020/[PathToSparkEventLogDir]
spark.history.fs.logDirectory 
  hdfs:///[nameNode]:8020/[PathTosparkLogDirectory]

spark-env.sh 中:
export SPARK_PUBLIC_DNS=[nameNode]
SPARK_HISTORY_OPTS="-Dspark.eventLog.enabled=true"
SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=$sparkHistoryDir"
SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.provider=org.apache.spark.deploy.history.FsHistoryProvider"
SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.cleaner.enabled=true"
SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.cleaner.interval=7d"

它查找/ tmp / spark-events /文件夹,当我创建它并启动历史记录服务器时,它不会显示任何完整或不完整的应用程序。

注意我也尝试了不带端口号的logDirectory值,但是它不起作用。

最佳答案

通过应用以下命令,我可以运行Spark History Server并查看已完成和未完成的应用程序的历史记录:

  • conf / spark-env.sh中设置公用DNS值
  • export SPARK_PUBLIC_DNS= NameNode-IP
    
  • 在我的Java代码中将这些属性添加到SparkConf:
  • SparkConf conf = new SparkConf()
                    .set("spark.eventLog.enabled", "true")
                    .set("spark.eventLog.dir", "hdfs:///user/[user-path]/sparkEventLog")
                    .set("spark.history.fs.logDirectory", "hdfs:///user/[user-path]/sparkEventLog")
    
  • 创建包含以下行的属性文件(spark / conf / history.properties)
  • spark.eventLog.enabled  true
    spark.eventLog.dir      hdfs:///user/[user-path]/sparkEventLog
    spark.history.fs.logDirectory   hdfs:///user/[user-path]/sparkEventLog
    
  • 启动历史记录服务器:
  • ./sbin/start-history-server.sh --properties-file ./conf/history.properties
    

    注意:属性 eventLog.dir eventLog.dir 应该具有保存值。

    关于performance - Spark中有什么方法可以保持每个阶段的运行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57201252/

    相关文章:

    python - 提交 PySpark 应用以在集群模式下在 YARN 上产生 Spark

    apache-spark - 如何将 Spark Streaming 与 Kafka 与 Kerberos 一起使用?

    hadoop - 通过 Spark App 在 HDFS 中的不同仓库目录之间保存 Hive 表

    java - Mapper 和 Reducer for K 意思是 Java Hadoop 中的算法

    arrays - Haskell 实时更新和查找性能

    javascript - 我什么时候需要调用 requestAnimationFrame()?

    c++ - 在不使用 if 的情况下插入/更新 std::unordered_map 元素的最快方法是什么?

    apache-spark - 带数据框的 Spark udf

    SQL 选择通过至少一个公共(public)属性值与记录相交?

    android - 为什么 Canvas.drawPath() 这么慢?