将作业提交到 YARN 集群的正确方法,其中作业依赖于外部 jar?
Correct way of submitting a job to YARN cluster in which job has dependencies on external jars?
我正在尝试了解将 MR(就此而言,基于 Spark Java)作业提交到 YARN 集群的正确方法是什么。
考虑以下情况:
使用客户端机器开发代码(MR 或 Spark)作业,并说代码使用第 3 方 jar。现在,当开发人员必须将作业提交到 YARN 集群时,将作业提交到集群的正确方法是什么,这样就不会出现 运行 时间异常 class not found。由于作业是作为 jar 文件提交的,开发人员如何 "put" 第三方 jar?
我很难理解这一点,谁能帮助我理解这一点?
您只需使用 Gradle 或 Maven 构建一个 "fat jar,",它不仅包含您的编译代码,还包含所有传递依赖项。
您可以使用 Maven Assembly Plugin or any of the Gradle plugins like the Shadow Plugin。
这些的输出是你应该提供给 spark-submit
。
我正在尝试了解将 MR(就此而言,基于 Spark Java)作业提交到 YARN 集群的正确方法是什么。
考虑以下情况:
使用客户端机器开发代码(MR 或 Spark)作业,并说代码使用第 3 方 jar。现在,当开发人员必须将作业提交到 YARN 集群时,将作业提交到集群的正确方法是什么,这样就不会出现 运行 时间异常 class not found。由于作业是作为 jar 文件提交的,开发人员如何 "put" 第三方 jar?
我很难理解这一点,谁能帮助我理解这一点?
您只需使用 Gradle 或 Maven 构建一个 "fat jar,",它不仅包含您的编译代码,还包含所有传递依赖项。
您可以使用 Maven Assembly Plugin or any of the Gradle plugins like the Shadow Plugin。
这些的输出是你应该提供给 spark-submit
。