无法使用sbt-assembly构建Spark+cassandra

ca1c2owp  于 2022-11-05  发布在  Cassandra
关注(0)|答案(2)|浏览(130)

我正在尝试用Spark+Cassandra构建一个简单的项目,用于SQL分析演示。我需要使用Cassandra v2.0.14(目前无法升级).我找不到正确版本的Spark和Spark-cassandra-connector.我参考了Datastax的git项目-https://github.com/datastax/spark-cassandra-connector,我知道Spark和Spark-cassandra-connector版本需要与Cassandra匹配和兼容。因此,希望任何人能帮助指出Spark的确切版本,Spark-Cassandra-connector.我试着对Spark和Spark-Cassandra-connector都使用v1.1.0和v1.2.1-但是无法用提供的sbt构建spark-Cassandra-connector jat jar(失败,因为下载的sbt-launch jar仅包含404未找到的html),也不是我的本地sbt v0.13.8(由于“import sbtassembly.Plugin."、“import AssemblyKeys.”的编译错误而失败)

yqhsw0fo

yqhsw0fo1#

此连接器可以与Cassandra 2.0和2.1一起使用,但有些功能也可以与使用旧版Java驱动程序2.1的2.2和3.0(尚未正式支持)一起使用。这是因为C* Java驱动程序支持广泛的Cassandra版本。较新的驱动程序可以与较旧的C* 版本一起使用,但较旧的驱动程序版本也可以与较新的C* 版本一起使用,不包括新的C* 功能。
但是,使用C* 2.0时有一个小小的警告:从1.3.0版本开始,我们从连接器中删除了thrift客户端。这一举动是为了简化连接代码,使其更容易调试-调试一种类型的连接应该比调试两种类型的连接更容易。它要么连接,要么不连接,不再出现“它写得很好,但不能连接阅读”的意外。不幸的是,并不是所有的thrift功能都是由C* 2.0中的本地协议或系统表公开的。2因此,如果你使用2.1.5之前的C* 版本,自动调整拆分大小将无法正常工作,您必须告诉连接器首选的拆分数。这将在创建RDD时传递的ReadConf对象中设置。
至于连接器和Spark之间的接口,自由度要小得多。Spark API经常变化,通常需要一个专用于Spark版本的连接器。请参阅README中的版本表。
(失败,因为下载的sbt-launch jar仅包含404未找到html)
这看起来像是SBT的问题,而不是连接器的问题。我只是试着在所有的V1. 2. 5,V1. 3. 0,B1. 4上做X1 M1 N1 X,它工作得很好。

ctrmrzij

ctrmrzij2#

如果你可以升级Spark版本,那么你就可以用Cassandra连接Spark。
在pom文件中放置以下Maven依赖项:-
cassandra-所有cassandra-核心cassandra-Mapcassandra-节约cassandra-客户端spark-cassandra-连接器spark-cassandra-连接器-java
这会起作用

相关问题