【发布时间】:2017-09-25 12:24:00
【问题描述】:
我在我们的 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 并且它失败了,因为它找到了版本 spark uber jar 只有Guava version 19.0。但是当我执行spark-submit 时仍然出现同样的错误。
经过进一步分析,我发现spark-2.0.1-bin-hadoop2.7/jars 有Gava v14.0.1,并且当我执行spark-submit 时不考虑spark application jar 中的Guava v19.0,它正在加载。
然后我在spark-2.0.1-bin-hadoop2.7/jars 中用 v19.0 替换了 v14.0.1,现在我没有收到任何错误,应用程序运行正常。但我认为这不是一个好方法,不想在prod 中这样做。
如果我在 eclipse 中运行相同的 spark 作业(通过在代码中设置 conf master=local 并作为 Java 程序运行)它工作正常。
我在 SO 中发现了类似的问题,但没有找到任何解决方案。如果有人遇到同样的问题并对此有解决方案,请告诉我。
使用Datastax Enterprise Cassandra 5.x
谢谢!!!
【问题讨论】:
标签: java apache-spark guava datastax-enterprise spring-data-cassandra