无法生成 Spark 报告

问题描述 投票:0回答:1

我遇到一个问题,无法使用

com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:
插件生成 Spark 报告。尽管遵循了设置说明,但并未创建报告。

重现步骤

  1. 将以下依赖项添加到
    pom.xml
 <dependency>
        <groupId>tech.grasshopper</groupId>
        <artifactId>extentreports-cucumber7-adapter</artifactId>
        <version>1.14.0</version>
    </dependency>

  1. 使用以下设置配置
    extent.properties
    文件: extent.reporter.spark.start=true extent.reporter.spark.out=测试输出/SparkReport/Spark.html
  2. 使用配置的测试运行器类运行测试。
@Suite
@SelectClasspathResource("feature_files")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "StepDefs")
@CucumberOptions(
        plugin = {"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"}
)
public class RunCucumberTest {
}

预期行为: 应在指定的输出目录中生成 Spark 报告。

实际行为: 不会生成报告,日志中也没有错误消息。

环境

  • 黄瓜版本:7.16.1
  • Java版本:21
  • Maven版本:3.2.5

我尝试更改extentreports-cucumber7-adapter的版本,但对我不起作用``

cucumber extentreports
1个回答
0
投票

如果您无法生成 Spark 报告,可能是由于几个常见问题造成的。以下是排查和解决问题的清单以及步骤:


1. 检查 Spark 作业执行情况

  • 确保 Spark 作业成功运行并产生预期的输出。
  • 查看作业日志以识别执行过程中的错误或异常:
    yarn logs -applicationId <application_id>
    
    或者
    spark-submit --master <master-url> <your_spark_application>
    

2. 验证数据可用性

  • 检查Spark作业的输入数据在指定位置(例如HDFS、S3或本地文件系统)是否可用。
  • 确保访问数据不存在权限问题:
    hdfs dfs -ls /path/to/input/data
    

3. 检查输出目录

  • 验证输出目录是否存在并且可以访问。如果您的 Spark 作业需要空目录,请确保它尚未填充。
  • 如果目录不为空,Spark可能无法写入输出。您可以使用以下方法清理它:
    hdfs dfs -rm -r /path/to/output
    

4. 检查报告配置

  • 如果您使用特定的报告框架(例如 Apache Zeppelin、Jupyter 或 Spark 的内置报告库),请确保配置正确:
    • 对于 Zeppelin:检查您的 Spark 解释器设置。
    • 对于自定义报告:确保生成报告的脚本指向正确的输出目录。

5. 确保安装了依赖项

  • 验证 Spark 作业是否已安装并可访问所有必需的库和依赖项:
    • 如果使用 Maven 或 SBT 管理依赖项,请检查您的
      pom.xml
      build.sbt
      文件以获取所需的依赖项。
    • 对于 Python (PySpark),确保安装了所有必需的包:
      pip install -r requirements.txt
      

6. 内存和资源分配

  • 内存或CPU资源不足可能会导致报告生成失败。
    • 增加内存分配:
      --executor-memory 4G --driver-memory 2G
      
    • 增加核心数量:
      --executor-cores 2
      

7. 检查 Spark 日志是否有错误

  • 检查驱动程序和执行程序日志是否有错误。
    • 常见问题包括
      OutOfMemoryError
      FileNotFoundException
      NullPointerException

8. 验证报告格式

  • 确保报告生成脚本以预期格式(例如 CSV、JSON、Parquet)编写报告。
  • 如果以特定格式(例如 PDF 或 Excel)生成报告,请确保安装了所需的库(例如,Apache POI for Excel)。

9. 处理权限

  • 检查输入和输出目录的文件系统权限。确保运行 Spark 作业的用户具有必要的读/写访问权限。

10. 本地测试

  • 使用少量数据样本在本地运行 Spark 作业(如果可能),以在不消耗集群资源的情况下调试问题:
    spark-submit --master local[2] <your_spark_application>
    

11. 常见问题和修复

  • 问题:缺少输出文件

    • 确保在 Spark 应用程序中正确定义
      save
      write
      操作。
    • 将 DataFrame 写入 CSV 的示例:
      df.write.format("csv").save("/path/to/output")
      
  • 问题:作业挂起或失败

    • 使用 Spark UI 监控作业的状态并识别失败的阶段。
      http://<spark-master-url>:4040
      
  • 问题:空报告

    • 验证 Spark 作业是否产生输出记录。添加
      .show()
      .count()
      操作来验证输出 DataFrame。

如果您已完成这些步骤但仍然遇到问题,请分享错误消息或日志以获得更有针对性的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.