【问题标题】:How to connect spark with Cassandra如何将 Spark 与 Cassandra 连接起来
【发布时间】:2018-08-13 01:45:30
【问题描述】:

我正在使用 Ubuntu,我正在尝试将 spark 与 Cassandra 连接,我使用了以下步骤。

git clone https://github.com/datastax/spark-cassandra-connector.git
cd spark-cassandra-connector
./sbt/sbt assembly
./spark-shell --jars ~/spark/jars/spark-cassandra-connector-assembly-1.4.0-SNAPSHOT.jar

在这之后我尝试了这个

Scala> sc.stop
Scala> import com.datastax.spark.connector._
Scala> org.apache.spark.SparkContext
Scala> import org.apache.spark.SparkContext._
Scala import org.apache.spark.SparkConf
Scala> val conf = new SparkConf(true).set("spark.cassandra.connection.host", "localhost")
Scala> val sc = new SparkContext(conf)
Scala> val test_spark_rdd = sc.cassandraTable("keyspace", "table") 

我使用的是 spark 2.2.1,我的 Cassandra 是 apache-cassandra-2.2.12

当我输入这个命令时

Scala> val test_spark_rdd = sc.cassandraTable("keyspace", "table") 

它给了我这个错误。

错误:加载类文件“CassandraConnector.class”时检测到缺少或无效的依赖项。 无法访问包 org apache spark 中的登录类型, 因为它(或其依赖项)丢失了。检查您的构建定义 缺少或冲突的依赖关系。 (使用 Ylog 类路径重新运行以查看有问题的类路径。) 如果“CassandraConnector 类”是针对不兼容的 org apache spark 版本编译的,则完全重建可能会有所帮助。

我找到了不同的教程,但我无法解决我的问题,有人会给我建议吗?谢谢

【问题讨论】:

  • 连接器版本是1.4?对于 spark 2.x,它应该是 spark-cassandra-connector 2.0
  • 你能告诉我如何安装 2.x
  • 通常使用sbt或maven进行依赖管理

标签: scala apache-spark cassandra spark-dataframe


【解决方案1】:

不要下载 jar 文件并尝试使用它们。而是将 spark shell 指向 maven 依赖项。

./bin/spark-shell --packages "com.datastax.spark:spark-cassandra-connector:2.0.7"

现在 spark shell 会自动从 maven central 下载正确的 jar 文件

【讨论】:

  • 你能告诉我如果我使用的是 apache-cassandra-3.11.2 和 spark 2.0.2 我应该使用哪个连接器吗?
  • 本文档包含一个用于查找兼容版本的网格github.com/datastax/spark-cassandra-connector
  • 我尝试了所有,但我无法执行,您能否为我推荐一个。 apache-cassandra-3.11.2 和 spark 2.0.2
猜你喜欢
  • 1970-01-01
  • 2016-10-02
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
  • 2016-05-01
  • 2016-01-29
  • 1970-01-01
相关资源
最近更新 更多