我知道随着主要版本spark的更改(即从1. *到2. *),由于现有API的更改,将会出现编译时失败。
根据我的知识,spark保证通过次要版本更新(即2.0。*到2.2。*),更改将向后兼容。
虽然这样可以消除升级时编译时失败的可能性,但如果在spark 2.2上提交作业,则可以安全地假设不存在任何运行时故障。*使用工件的独立集群( jar)使用2.0。*依赖项创建?
答案 0 :(得分:1)
如果使用使用2.0。*依赖项创建的工件(jar)在2.2。*集群上提交作业,是否可以安全地假设不存在任何运行时故障?
是
我甚至说除非我们谈论内置的Spark Standalone集群,否则没有Spark集群的概念。
换句话说,您将Spark应用程序部署到群集,例如Hadoop YARN或Apache Mesos,作为一个应用程序jar,可能包含也可能不包含Spark jar,因此忽略了环境中已有的内容。
如果您确实想到了Spark Standalone,那么即使在2.0和2.2之间的版本之间也可能已经破坏了,因为Spark应用程序中的jar必须与Spark工作者的JVM上的jar兼容(它们已经预先加载) )。
我不声明Spark Standalone版本之间完全兼容。