gpt4 book ai didi

java - 使用 Spark 和 Cassandra Java 驱动程序时检测到 Guava 问题 #1635

转载 作者:行者123 更新时间:2023-11-30 02:33:44 25 4
gpt4 key购买 nike

我在 Spark 应用程序中使用 spring-data-cassandra 1.5.1(它使用 cassandra java driver 3.x)。运行 spark-submit 命令时,出现以下错误。

Caused by: java.lang.IllegalStateException: Detected Guava issue #1635 which indicates that a version of Guava less than 16.01 is in use.  This introduces codec resolution issues and potentially other incompatibility issues in the driver.  Please upgrade to Guava 16.01 or later.
at com.datastax.driver.core.SanityChecks.checkGuava(SanityChecks.java:62)
at com.datastax.driver.core.SanityChecks.check(SanityChecks.java:36)
at com.datastax.driver.core.Cluster.<clinit>(Cluster.java:68)
... 71 more

cassandra 驱动程序似乎正在寻找 Guava 版本 > 16.0.1,但失败,因为它发现版本 < 16.0.1。我确保构建的 spark uber jar 只有 Guava 版本 19.0。但当我执行 spark-submit 时,我仍然遇到同样的错误。

经过进一步分析,我发现 spark-2.0.1-bin-hadoop2.7/jarsGava v14.0.1 并且在我执行时正在加载spark-submit 而不考虑 spark 应用程序 jar 中的 Guava v19.0

然后我在 spark-2.0.1-bin-hadoop2.7/jars 中将 v14.0.1 替换为 v19.0,现在我没有收到任何错误,应用程序运行正常。但我认为这不是一个好方法,并且不想在 prod 中这样做。

如果我在 eclipse 中运行相同的 Spark 作业(通过在代码中设置 conf master=local 并作为 Java 程序运行),它可以正常工作。

我在 SO 中发现了类似的问题,但没有找到任何解决方案。如果有人遇到同样的问题并有解决方案,请告诉我。

使用Datastax Enterprise Cassandra 5.x

谢谢!!!

最佳答案

这是因为 spring-data-cassandra 使用 cassandra java 驱动程序。正如所解释的那样,Cassandra java 驱动程序不必包含在内 here .

就像@RussS 所说:

  • 仅使用阴影 jar,这是 Spark Cassandra 连接器 2.0.0-M3 中的默认设置
  • 请勿包含对 Cassandra Java 驱动程序的任何依赖项。这样做将重新引入 Guava 版本。

看看https://github.com/datastax/spark-cassandra-connector/blob/master/doc/FAQ.md#how-do-i-fix-guava-classpath-errors

关于java - 使用 Spark 和 Cassandra Java 驱动程序时检测到 Guava 问题 #1635,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43662320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com