gpt4 book ai didi

java - 带有 --jars 的 spark-submit yarn-cluster 不起作用?

转载 作者:可可西里 更新时间:2023-11-01 14:31:24 29 4
gpt4 key购买 nike

我正在尝试通过以下命令向 CDH yarn 集群提交一个 spark 作业

我尝试了几种组合,但都不行......我现在所有的 poi jar 都位于我的本地/root 以及 HDFS/user/root/lib 中,因此我尝试了以下操作

spark-submit --master yarn-cluster --class "ReadExcelSC" ./excel_sc.jar --jars /root/poi-3.12.jars, /root/poi-ooxml-3.12.jar, /root/poi-ooxml-schemas-3.12.jar

spark-submit --master yarn-cluster --class "ReadExcelSC" ./excel_sc.jar --jars file:/root/poi-3.12.jars, file:/root/poi-ooxml-3.12.jar, file:/root/poi-ooxml-schemas-3.12.jar

spark-submit --master yarn-cluster --class "ReadExcelSC" ./excel_sc.jar --jars hdfs://mynamenodeIP:8020/user/root/poi-3.12.jars,hdfs://mynamenodeIP:8020/user/root/poi-ooxml-3.12.jar,hdfs://mynamenodeIP:8020/user/root/poi-ooxml-schemas-3.12.jar

如何将 jars 传播到所有集群节点?因为以上都不起作用,而且作业仍然无法引用该类,因为我不断收到相同的错误:

java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/WorkbookFactory

相同的命令适用于“--master local”,无需指定 --jars,因为我已将我的 jars 复制到/opt/cloudera/parcels/CDH/lib/spark/lib .

但是对于 yarn-cluster 模式,我需要将外部 jar 分发到所有集群,但上面的代码不起作用。

感谢您的帮助,谢谢。

附注我正在使用 CDH5.4.2 和 spark 1.3.0

最佳答案

根据Spark Submit的帮助选项

  • --jars 包含要包含在驱动程序和执行程序类路径中的本地 jar。 [它只会设置路径]

  • ---files 将复制应用程序运行所需的 jar 到执行器节点的所有工作目录[它将把你的 jar 传输到
    工作目录]

注意:这类似于 hadoop streaming 中的 -file 选项,它将 mapper/reducer 脚本传输到从节点。

因此也尝试使用 --files 选项。

$ spark-submit --help
Options:
--jars JARS Comma-separated list of local jars to include on the driver
and executor classpaths.
--files FILES Comma-separated list of files to be placed in the working
directory of each executor.

希望对你有帮助

关于java - 带有 --jars 的 spark-submit yarn-cluster 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31602128/

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