我正在尝试使用Spark + Cassandra为SQL分析演示构建一个简单的项目。 我需要使用Cassandra v2.0.14(现在不能升级它)。我无法找到正确版本的Spark和Spark-cassandra-connector。我在 - https://github.com/datastax/spark-cassandra-connector提到了Datastax的git项目,我知道Spark和Spark-cassandra-connector版本需要匹配并与Cassandra兼容。因此,希望有人帮助指出Spark,Spark-Cassandra-connector的确切版本。我尝试将v1.1.0和v1.2.1用于Spark和Spark-Cassandra-connector - 但是无法使用提供的sbt构建spark-cassandra-connector jat jar(因为下载的sbt-launch jar只包含404而失败)找不到html),也不是我的本地sbt v0.13.8(编译错误导致"导入sbtassembly.Plugin。","导入AssemblyKeys。" )
答案 0 :(得分:0)
如果你可以升级版本的spark,那么你可以用cassandra连接spark。
将以下maven依赖项放在pom文件中: -
卡桑德拉-所有 卡桑德拉核心 卡桑德拉映射 卡桑德拉 - 节俭 卡桑德拉客户端 火花卡桑德拉连接器 火花卡桑德拉连接器的Java
这将是有效的。
答案 1 :(得分:0)
连接器适用于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.1.5之前使用C *,则自动拆分大小调整将无法正常工作,您必须告知连接器首选的拆分数。这将在创建RDD时传递的ReadConf
对象中设置。
对于Connector和Spark之间的接口,自由度要低得多。 Spark API经常更改,您通常需要一个专用于您使用的Spark版本的连接器。请参阅自述文件中的版本表。
(失败,因为下载的sbt-launch jar只包含404未找到的html)
这看起来像是SBT问题,而不是连接器问题。
我只是尝试在所有v1.2.5,v1.3.0,b1.4上做sbt clean assembly
,它运行正常。