连接cassandra和spark时出错

时间:2016-09-11 04:39:15

标签: apache-spark cassandra

我在我的ubuntu 14.04上安装了cassandra 2.1.11,spark 2.0.0.bin hadoop 2.7和java version 1.8.0_101。 对于Spark Cassandra Connector,我安装了git

var TaskSchema = new Schema({
   Name : {type: String},
   Email : {type: String},
    Tasks : [Schema.Types.Mixed]
}, {strict: false});

module.exports = mongoose.model('Task', TaskSchema);

并构建它

sudo apt-get install git
git clone https://github.com/datastax/spark-cassandra-connector.git

并将scala jar放在主目录

cd spark-cassandra-connector
git checkout v1.4.0
./sbt/sbt assembly

并使用连接器

cp spark-cassandra-connector/target/scala-2.10/spark-cassandra-connector-assembly-1.4.0-SNAPSHOT.jar ~

和scala promt

bin/spark-shell --jars ~/spark-cassandra-connector-assembly-1.4.0-SNAPSHOT.jar

我已经从cqlsh创建了测试键空间和表 my_table 并测试了连接,我运行了以下命令

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

并收到错误

eval test_spark_rdd = sc.cassandraTable("test", "my_table")

这是由于spark和cassandra的版本不匹配吗?

1 个答案:

答案 0 :(得分:4)

这是Spark和Spark之间的不匹配。您选择将1.4.0库与Spark 2.0.0一起使用。

使用2.0.0版本并使用Spark包。

https://spark-packages.org/package/datastax/spark-cassandra-connector

> $SPARK_HOME/bin/spark-shell --packages datastax:spark-cassandra-connector:2.0.0-M2-s_2.11