hadoop - 将作业提交到 YARN 集群的正确方法,其中作业依赖于外部 jar?

标签 hadoop apache-spark hadoop-yarn hadoop2

我试图了解将 MR(就此而言,基于 Java 的 Spark)作业提交到 YARN 集群的正确方法是什么。

考虑以下情况:

使用客户端机器开发代码(MR 或 Spark)作业,并说代码使用第 3 方 jar。现在,当开发人员必须将作业提交到 YARN 集群时,将作业提交到集群的正确方法是什么,这样就不会出现未找到类的运行时异常。由于作业是作为 jar 文件提交的,开发人员如何“放置”第 3 方 jar?

我很难理解这一点,谁能帮助我理解这一点?

最佳答案

您必须使用 Gradle 或 Maven 简单地构建一个“ fat jar 子”,它不仅包含您编译的代码,还包含所有传递依赖项。

您可以使用 Maven Assembly Plugin或任何 Gradle 插件,如 Shadow Plugin .

这些的输出是您应该提供给 spark-submit 的内容。

关于hadoop - 将作业提交到 YARN 集群的正确方法,其中作业依赖于外部 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309749/

相关文章:

hadoop - 是否可以从hbase转换为spark rdd效率?

hadoop - 如何在单个 MapReduce 作业中实现多个 reducer

python-3.x - 由于 python 版本,运行 PySpark DataProc 作业时出错

hadoop - 什么时候文件 "splittable"?

apache-spark - 如何将字符串中的时间值从 PT 格式转换为秒?

hadoop - 如何知道 yarn cluster 中可用的 reducer 插槽容量

scala - 通过文本文件序列化保留Spark分区顺序

hadoop - 如何从 pyspark 连接到 Teradata?

apache-spark - 使用 Amazon 的 "maximizeResourceAllocation"设置的 Spark + EMR 不使用所有核心/vcore

hadoop - hadoop 安装过程中无法运行 yarn