【问题标题】:What is the purpose of SPARK_ENV_LOADED environment variable?SPARK_ENV_LOADED 环境变量的用途是什么?
【发布时间】:2018-05-03 23:20:59
【问题描述】:

我正在使用 Spark hidden rest api 以 described here. 提交 spark 应用程序,当我提交 CreateSubmissionRequest JSON 时没有以下内容

"environmentVariables" : {
    "SPARK_ENV_LOADED" : "1"
},

作业失败并出现以下错误

WARN Worker: Driver driver-20170206152610-0010 failed with unrecoverable exception: java.lang.NullPointerException

SPARK_ENV_LOADED 属性的用途是什么?

【问题讨论】:

  • 它既不是 Spark property,也不是 Java system property,而是 OS environment variable... AFAIK它只是用于用于命令行执行的脚本之一(即 Linux 上的 load-spark-env.sh 和 Windows 上的 load-spark-env.cmd),以确保 spark-env.* 只执行一次。你可以给它任何值,脚本只检查它是否为空。
  • 从您的错误消息看来,在运行 REST API 的应用程序中,有一个对 System.getenv("SPARK_ENV_LOADED") 的调用,而没有考虑过 getenv 可能返回 Null 的事实。咳咳。

标签: apache-spark


【解决方案1】:

SPARK_ENV_LOADED 环境变量告诉您​​ Apache Spark 环境已加载。它使您可以检查以确保环境已加载,并且仅加载一次。见https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-submit.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多