3.1 整体架构 image.png 利用spark-cassandra-connector连接Cassandra,读取存储在Cassandra中的数据,然后就可以使用Spark RDD中的支持API 3.2 Spark-cassandra-connector 在Spark中利用datastax提供的spark-cassandra-connector来连接Cassandra数据库是最为简单的一种方式。 目前spark-cassandra-connector 1.1.0-alpha3支持的Spark和Cassandra版本如下 Spark 1.1 Cassandra 2.x 如果是用sbt来管理scala 程序的话,只需要在build.sbt中加入如下内容即可由sbt自动下载所需要的spark-cassandra-connector驱动 datastax.spark" %% "spark-cassandra-connector 但在执行阶段问题就会体现出来,即程序除了spark-cassandra-connector之外还要依赖哪些文件呢,这个就需要重新回到maven版本库中去看spark-cassandra-connector
Spark-Cassandra-Connector 在第一节中讲解了Cassandra中Token Range信息的存储位置,以及可以使用哪些API来获取token range信息。 接下来就分析spark-cassandra-connector是如何以cassandra为数据源将数据加载进内存的。 上述的查询使用spark-cassandra-connector来表述就是: ? CassandraRDDPartitioner Spark-cassandra-connector添加了一种新的RDD实现,即CassandraRDD。 解决的办法就是直接使用Cassandra Java Driver而不再使用spark-cassandra-connector的高级封装,因为不能像这样子来使用cassandraRDD。 ?
" % "provided", "org.apache.spark" %% "spark-streaming-kafka" % "1.6.0", "com.datastax.spark" %% "spark-cassandra-connector " % "provided", "org.apache.spark" %% "spark-streaming-kafka" % "2.0.0", "com.datastax.spark" %% "spark-cassandra-connector
系统架构 说是一个系统,其实是一个 jar 包,这个 jar 包依赖了 Spark 、Spark-Cassandra-Connector 和 Cassandra,实现了他们的接口。 这张图说每个 ModelarDB 节点上都有一个 Spark 节点和 Cassandra,保证数据本地性,其实任意一个使用 Spark-Cassandra-Connector 的客户端都能做到这个。 可以做谓词下推,也是利用了 Spark-Cassandra-Connector 的功能。 对比 压缩率:用模型代替原始数据肯定能压的很好,跟其他流行的时间序列数据库和大数据文件格式做了对比。 ?