本文演示以Spark作为分析引擎,Cassandra作为数据存储,而使用Spring Boot来开发驱动程序的示例。
1.前置条件
-
安装Spark(本文使用Spark-1.5.1,如安装目录为/opt/spark)
-
安装Cassandra(3.0+)
- 创建keyspace
CREATE KEYSPACE hfcb WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };
- 创建table
CREATE TABLE person ( id text PRIMARY KEY, first_name text, last_name text );
- 插入测试数据
insert into person (id,first_name,last_name) values('1','wang','yunfei'); insert into person (id,first_name,last_name) values('2','peng','chao'); insert into person (id,first_name,last_name) values('3','li','jian'); insert into person (id,first_name,last_name) values('4','zhang','jie'); insert into person (id,first_name,last_name) values('5','liang','wei');
2.spark-cassandra-connector安装
让Spark-1.5.1能够使用Cassandra作为数据存储,需要加上下面jar包的依赖(示例将包放置于/opt/spark/managed-lib/
目录,可任意):
cassandra-clientutil-3.0.2.jar
cassandra-driver-core-3.1.4.jar
guava-16.0.1.jar
cassandra-thrift-3.0.2.jar
joda-convert-1.2.jar
joda-time-2.9.9.jar
libthrift-0.9.1.jar
spark-cassandra-connector_2.10-1.5.1.jar
在/opt/spark/conf
目录下,新建spark-env.sh
文件,输入下面内容
SPARK_CLASSPATH=/opt/spark/managed-lib/*
3.Spring Boot应用开发
- 添加
spark-cassandra-connector
和spark
依赖
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.5.1</version>
</dependency>
- 在
application.yml
中配置spark
与cassandra
路径
此处特别说明spark://master:7077
是域名形式而不是ip地址,可修改本地hosts
文件将master
与ip
地址映射。
spark.master: spark://master:7077
cassandra.host: 192.168.1.140
cassandra.keyspace: hfcb
- 配置
SparkContext
和CassandraSQLContext
@Configuration
public class SparkCassandraConfig {
@Value("${spark.master}")
String sparkMasterUrl;
@Value("${cassandra.host}")
String cassandraHost;
@Value("${cassandra.keyspace}")
String cassandraKeyspace;
@Bean
public JavaSparkContext javaSparkContext(){
SparkConf conf = new SparkConf(true)
.set("spark.cassandra.connection.host", cassandraHost)
// .set("spark.cassandra.auth.username", "cassandra")
// .set("spark.cassandra.auth.password", "cassandra")
.set("spark.submit.deployMode", "client");
JavaSparkContext context = new JavaSparkContext(sparkMasterUrl, "SparkDemo", conf);
return context;
}
@Bean
public CassandraSQLContext sqlContext(){
CassandraSQLContext cassandraSQLContext = new CassandraSQLContext(javaSparkContext().sc());
cassandraSQLContext.setKeyspace(cassandraKeyspace);
return cassandraSQLContext;
}
}
- 简单调用
@Repository
public class PersonRepository {
@Autowired
CassandraSQLContext cassandraSQLContext;
public Long countPerson(){
DataFrame people = cassandraSQLContext.sql("select * from person order by id");
return people.count();
}
}
-
启动即可如常规Spring Boot程序一样执行。
-
源码地址:http://www.wisely.top/2018/02/01/spring_boot-spark-cassandra-integration/
相关推荐
本文演示以Spark作为分析引擎,Cassandra作为数据存储,而使用Spring Boot来开发驱动程序的示例。对spring boot 与spark cassandra集成开发示例代码感兴趣的朋友跟着脚本之家小编一起学习吧
spring boot与cassandra集成,使用JPA方式。
spring boot与cassandra集成,使用原生驱动。spring boot版本为1.4.3.RELEASE,cassandra版本为3.0.9。
Spring Boot + Apache Cassandra 这是一个Spring Boot + Apache Cassandra应用程序的示例。 它是使用Spring Boot , Apache Cassandra , Spring Security , Spring Data Cassandra , Docker和Docker Compose制...
Spring Data for Apache Cassandra API。 Spring Data for Apache Cassandra 开发文档
一个简单的示例,说明spring boot cassandra的实现 它有两个实现-自动配置和使用AbstractCassandraConfiguration。 Exmaple遍历GET和POST请求 还说明了如何在cassandra表中使用新的TYPE 建立表格 使用聚类排序依据...
TutorialsPoint SpringJDBC JSoup CouchDB Cassandra JSF Kotlin 教程
Spark Cassandra连接器快速链接什么哪里社区在与我们聊天Scala文档最新版本(3.0.0): , 最新生产版本产品特点借助Apache Spark:trade_mark:和ApacheCassandra:registered:实现闪电般的集群计算。 该库使您可以将...
Stratio高级架构师Luca Rosellini:在此次峰会上和其同事Oscar Méndez、Alvaro Agea重点介绍Stratio的主要客户、为什么使用Cassandra、为什么使用Spark以及举例说明。
这是一个用于 Cassandra 的 SpringFramework Data 项目,它通过用于 Cassandra 2.0 的官方 DataStax 2.x Java使用二进制 CQL3 协议。 支持 SpringFramework Data Repositories 中的原生 CQL3 查询。版本当前版本: ...
嵌入式Cassandra [Spring Boot Starter] 该项目包括AutoConfiguration 。 要配置CassandraBuilder它建立之前Cassandra ,应用程序性能都可以使用。 所有属性都以前缀cassandra.embedded开头。 # Cassandra config...
Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...
Spring Boot 学习代码,整合了redis, mybatis,postgreql,cassandra
下载Apache Cassandra Cassandra设置CASANDRA_HOME安装python并设置环境变量Path Docker命令: docker pull cassandra docker run --name cassandra -p 9042:9042 -p 9160:9160 -d cassandra docker ps docker ...
Spring球衣卡桑德拉 Spring Jersey Cassandra Maven集成 建造 mvn clean package ` ` `
您正在构建的机器上的 jdk 和 sbt,某些机器上的 spark 和 cassandra cqlsh --file cassandra-example.cql 编辑 cassandra-example.conf,为您的环境设置 master 和 cassandra 连接信息。 要构建一个包含所有...
通过Docker的Spring Boot和Cassandra :open_book: 信息 这是该项目的说明 Ë :hammer: 运行应用 1)安装Docker Desktop 。 这是安装链接: : 2)在资源文件夹下打开终端以在Docker容器上运行Cassandra docker-...
这个Spring Boot应用程序集成了Kafka和Cassandra。 a) 您可以通过post请求将json数据传递给API,将数据插入Cassandra。它处理这些消息并插入到Cassandra DB中。 Spring Boot版本:1.4.2 JDK版本:1.8 Cassandra/...
罪恶十月 Spring-boot + Cassandra + SwaggerUI RESTful。 参考:
这是一个存储库,其中包含用于将 Apache Spark 与 Apache Cassandra 一起使用的“入门”类 Scala 代码。 此存储库中给出的所有代码库都在以下版本的软件上运行: Apache Spark - 1.2.0 Apache Cassandra - 从主干...