gpt4 book ai didi

apache-spark - 如何在执行器中获取工作目录

转载 作者:行者123 更新时间:2023-12-02 05:17:00 26 4
gpt4 key购买 nike

我正在使用下面的命令来提交 Spark 作业,我希望将 jar 和配置文件发送到每个执行器并加载到那里

spark-submit --verbose \
--files=/tmp/metrics.properties \
--jars /tmp/datainsights-metrics-source-assembly-1.0.jar \
--total-executor-cores 4\
--conf "spark.metrics.conf=metrics.properties" \
--conf "spark.executor.extraClassPath=datainsights-metrics-source-assembly-1.0.jar" \
--class org.microsoft.ofe.datainsights.StartServiceSignalPipeline \
./target/datainsights-1.0-jar-with-dependencies.jar

--files和--jars是用来给executor发送文件的,我发现文件都是像'worker/app-xxxxx-xxxx/0/这样发送到executor的工作目录

但是当作业运行时,执行程序总是抛出异常,说它找不到文件“metrics.properties”或“datainsights-metrics-source-assembly-1.0.jar”中包含的类。看起来这个工作是在另一个目录而不是工作目录下寻找文件。

你知道如何加载发送给执行者的文件吗?

这是跟踪(类“org.apache.spark.metrics.PerfCounterSource”包含在 jar“datainsights-metrics-source-assembly-1.0.jar”中):

ERROR 2016-01-14 16:10:32 Logging.scala:96 - org.apache.spark.metrics.MetricsSystem: Source class org.apache.spark.metrics.PerfCounterSource cannot be instantiated
java.lang.ClassNotFoundException: org.apache.spark.metrics.PerfCounterSource
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_80]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_80]
at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_80]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_80]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_80]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.7.0_80]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_80]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_80]
at java.lang.Class.forName(Class.java:195) ~[na:1.7.0_80]

最佳答案

看起来您的 --jars 参数中有错字,所以它可能实际上并没有加载文件并继续静默。

关于apache-spark - 如何在执行器中获取工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com