如何用Cassandra连接火花

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Cassandra连接火花相关的知识,希望对你有一定的参考价值。

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

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类路径以查看有问题的类路径。)如果针对不兼容的org apache spark版本编译了“CassandraConnector类”,则完全重建可能会有所帮助。

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

答案

不要下载jar文件并尝试使用它们。而只是将火花壳指向maven依赖。

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

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

以上是关于如何用Cassandra连接火花的主要内容,如果未能解决你的问题,请参考以下文章

Spark Cassandra 连接器基础简单程序获取火花记录错误

Spark Streaming:读取和写入状态信息到外部数据库,如 cassandra

与 Cassandra SaveToCassandra 一起火花

我们如何用Cassandra每天存储上亿条线上数据

如何用 ViewPager 中的另一个片段替换 Android 片段?

如何用氰化物配置石墨网