【发布时间】:2019-05-10 10:39:19
【问题描述】:
我有一个使用 Jackson 2.8 API 的 Spark 应用程序,并且我使用 spark 1.6 作为应用程序 pom.xml 中提供的(范围)依赖项。当我尝试在集群模式下部署 Spark 应用程序时,选择了 Spark 1.6 构建中的 Jackson 旧版本,导致应用程序失败。
我厌倦了通过“--jars”选项提供 2.8 Jackson jar,构建包含最新 Jackson 依赖项的 Uber 应用程序 jar 和执行程序/驱动程序上的 userClasspathFirst 选项 - 这些选项都没有帮助。
我将最新的 Jackson jar 放在同一位置的所有 Spark 工作节点中,并将路径添加到 executor classpath 选项 - 只有在此选项中,才会选择最新的 Jackson 版本。在这个解决方案中,每次我向我的应用程序添加一个新的工作节点时,我都必须放置最新的 Jackson,我认为这是一个劣势。如果有人有更好的解决方案,请告诉我。
【问题讨论】:
标签: apache-spark