Apache spark DSE Cassandra与CDH spark存在guava-16.0.1.jar冲突问题
我们使用DSE4.8.3 Cassandra在oozie中运行CDH5.5.0 Spark,刚刚发现DSE Cassandra存在guava-16.0.1.jar冲突问题,如下所示 失败的Oozie启动器,Main类[org.apache.Oozie.action.hadoop.SparkMain],Main()抛出异常,com.google.common.reflect.TypeToken.isPrimitive()Z java.lang.NoSuchMethodError:com.google.common.reflect.TypeToken.isPrimitive()Z DSE 4.8.3中的卡桑德拉版本为2.1.11.969。CDH5.5.0中的Spark版本为1.5.0。用于卡桑德拉驱动程序和连接器 1.如果我们使用cassandra-driver-core-2.2.0-rc3.jar和spark-cassandra-connector_2.10-1.5.0-M2.jar,它们都使用guava-16.0.1.jar作为它们的依赖项,它会在CDH中抛出异常“Method not found:com.google.common.reflect.TypeToken.isPrimitive()Z”(CDH5.5.0 spark使用guava-14.0.1.jar,而不是guava-16.0.1.jar) 2.如果我们使用较低版本的cassandra-driver-core-2.2.0-rc1.jar和spark-cassandra-connector_2.10-1.5.0-M1.jar,这两个版本都使用guava-14.0.1.jar作为它们的依赖项,它会引发以下异常: 线程“main”java.lang.AbstractMethodError中出现异常:com.datastax.spark.connector.cql.LocalNodeFirstLoadBalancingPolicy.close()V 位于com.datastax.driver.core.Cluster$Manager.close(Cluster.java:1417) 位于com.datastax.driver.core.Cluster$Manager.access$200(Cluster.java:1167) 位于com.datastax.driver.core.Cluster.closeAsync(Cluster.java:461) 位于com.datastax.driver.core.Cluster.close(Cluster.java:472) 在com.datasax.spark.connector.cql.CassandraConnector$.com$datasax$spark$connector$cql$CassandraConnector$$createSession(CassandraConnector.scala:163) 我找到了这个异常的答案:(说使用更高版本的spark-cassandra-connector_2.10-1.5.0-M2.jar可以解决这个问题)Apache spark DSE Cassandra与CDH spark存在guava-16.0.1.jar冲突问题,apache-spark,cassandra,oozie,datastax-enterprise,Apache Spark,Cassandra,Oozie,Datastax Enterprise,我们使用DSE4.8.3 Cassandra在oozie中运行CDH5.5.0 Spark,刚刚发现DSE Cassandra存在guava-16.0.1.jar冲突问题,如下所示 失败的Oozie启动器,Main类[org.apache.Oozie.action.hadoop.SparkMain],Main()抛出异常,com.google.common.reflect.TypeToken.isPrimitive()Z java.lang.NoSuchMethodError:com.googl
所以现在,我们对卡桑德拉依赖性问题感到困惑。如何解决cassandra guava-16.0.1依赖性问题?有可能构建一个新的spark-cassandra-connector.jar来解决这两个问题吗?你能帮我解决这个问题吗?谢谢 不应存在C*驱动程序依赖项,因为它应自动引入,并将Spark Cassandra连接器依赖项作为可传递依赖项。我会使用1.5.0版本。然后,您需要确保在构建时排除所有其他番石榴版本 这意味着,如果您正在制作一个胖罐子,请确保您的代码中没有包含任何Spark发行版,并且任何Hadoop LIB都没有包含Guava 关于更多细节,这里还有一些其他的邮件线程 检测到番石榴问题#1635,表示正在使用低于16.01的番石榴版本。 番石榴问题