Spark 2.0.0 还需要做一个fat jar 来提交作业吗?

Do we still have to make a fat jar for submitting jobs in Spark 2.0.0?

在 Spark 2.0.0 的发布 note 中,它说:

Spark 2.0 no longer requires a fat assembly jar for production deployment.

Does this mean that we do not need to make a fat jar anymore for submitting jobs ?

遗憾的是,没有。您仍然需要为 Sparks 部署创建一个超级 JAR。

发行说明中的​​标题非常具有误导性。实际的意思是Spark本身作为一个依赖不再被编译成一个uber JAR,而是像一个带有依赖的普通应用程序JAR。您可以在@SPARK-11157 中更详细地看到它,它被称为 "Allow Spark to be built without assemblies",并阅读名为 的论文“用旧的替换 Spark 组件 jars 它描述了部署 Spark 的优缺点,而不是几个巨大的 JAR(Core、Streaming、SQL 等),而是几个相对规则大小的 JAR,其中包含代码和 lib/ 包含所有相关依赖项的目录。

如果你真的想要细节,this pull request 触及几个关键部分。