Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark DSE Cassandra与CDH spark存在guava-16.0.1.jar冲突问题_Apache Spark_Cassandra_Oozie_Datastax Enterprise - Fatal编程技术网

Apache spark DSE Cassandra与CDH spark存在guava-16.0.1.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

我们使用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可以解决这个问题)


所以现在,我们对卡桑德拉依赖性问题感到困惑。如何解决cassandra guava-16.0.1依赖性问题?有可能构建一个新的spark-cassandra-connector.jar来解决这两个问题吗?你能帮我解决这个问题吗?谢谢

不应存在C*驱动程序依赖项,因为它应自动引入,并将Spark Cassandra连接器依赖项作为可传递依赖项。我会使用1.5.0版本。然后,您需要确保在构建时排除所有其他番石榴版本

这意味着,如果您正在制作一个胖罐子,请确保您的代码中没有包含任何Spark发行版,并且任何Hadoop LIB都没有包含Guava

关于更多细节,这里还有一些其他的邮件线程

检测到番石榴问题#1635,表示正在使用低于16.01的番石榴版本。

番石榴问题