【问题标题】:How do I get a working directory of Spark executor in Java? [duplicate]如何在 Java 中获取 Spark 执行器的工作目录? [复制]
【发布时间】:2017-10-03 06:03:16
【问题描述】:

我需要知道 Spark 执行器的当前工作目录 URI/URL,以便我可以在作业执行之前复制一些依赖项。我如何进入 Java ?我应该调用什么api?

【问题讨论】:

  • Spark 执行器不是长寿命的进程,你无法控制它们在集群中的运行位置
  • @cricket_007 如果 YARN 知道在哪里放置 spark-submit 的存档,那么它也可以在代码中完成,也可以在主 jar 中完成
  • 对,这就是 SparkFiles 的用途,正如已回答的那样。但是您对“代码中”的定义可能意味着驱动程序进程,而不是执行程序

标签: hadoop apache-spark


【解决方案1】:

工作目录是特定于应用程序的,因此您希望能够在应用程序启动之前获得它。最好使用标准 Spark 机制:

  • --jars / spark.jars - 用于 JAR 文件。
  • pyFiles - 用于 Python 依赖项。
  • SparkFiles / --files / --archives - 其他一切

【讨论】:

  • --归档并不总是有效。至少不是在我使用的 Azure Hdinsight 上,所以我必须求助于编程方式,直到微软修复它或正确记录......
猜你喜欢
  • 1970-01-01
  • 2013-07-30
  • 2018-08-18
  • 2011-06-19
相关资源
最近更新 更多