微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-使用–jars提交spark-submit yarn-cluster不起作用?

我正在尝试通过以下命令将火花作业提交给CDH纱簇

我尝试了几种组合,但都无法正常工作…
现在,我所有的poi jars都位于本地/ root以及HDFS / user / root / lib中,因此我尝试了以下操作@H_404_4@

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

如何将jar传播到所有群集节点?因为上述所有方法均无效,并且该工作仍无法以某种方式引用该类,因为我不断收到相同的错误

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

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

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

感谢您的帮助,谢谢.

ps.我正在将CDH5.4.2与Spark 1.3.0一起使用

解决方法:

根据Spark提交的帮助选项

> –jars包含要包含在驱动程序和执行程序类路径中的本地jar. [它将设置路径]
> —文件将您运行应用程序所需的jar复制到执行程序节点的所有工作目录中[它将jar传输到
工作目录]

注意:这类似于hadoop流中的-file选项,后者将映射器/化简器脚本传输到从属节点.

因此,也请尝试使用–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.

希望这可以帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐