本文演示以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/
相关推荐
在现代大数据处理中,Spring Boot、Spark和Cassandra的集成为构建高效、可扩展的数据处理系统提供了强大的工具。本文将详细介绍如何将这三个组件整合到一起,以实现一个完整的数据分析和存储解决方案。 首先,我们...
**Spring Boot**: Spring Boot是Java开发的一个流行框架,它简化了创建独立的、生产级别的基于Spring的应用程序。在本系统中,Spring Boot可能被用作后端服务的基石,提供RESTful API以供前端或客户端应用调用。通过...
这个"bigdata_springboot"项目显然涉及到Spring Boot与大数据处理的集成,这是一个复杂而重要的主题,因为Spring Boot的易用性和大数据的处理能力相结合,能够构建高效的数据驱动应用。 首先,我们要理解Spring ...
一个项目的总结文档,英文,主要功能: 1、分布式作业管理、调度、监控;...web部分采用spring boot开发,前端采用angularJS组织页面相关的各个部分,系统的技术和效果在2016~2017年在行业具有一定先进性。
Spring Boot可以与Apache Spark、Hadoop等大数据处理框架结合,实现分布式数据分析。 5. 数据可视化:通过图表或报表展示数据结果,便于理解。Spring Boot可以与前端框架(如Thymeleaf、React、Vue.js)集成,构建...
springboot2.0.3整合ELK,REDIS,SPARK,CASSANDRA,MONGODB,MYBATIS为了方便学习把应用的技术模块化,dome项目为主项目,kafka和多缓存配置在路上,有需要的请留言。
- **资源整合能力**:Cassandra易于与其他开源组件(如Hadoop、Spark、Kafka、Solr等)集成,使其在大数据处理场景中扮演着重要角色。 #### 集群环境搭建 **2.1 环境概览** - **Java版本**:JDK 1.8 - **...
Spring Boot的使用使得开发过程更为简便,它简化了初始化、配置以及依赖管理。在IoT平台中,每个微服务都可以用Spring Boot快速搭建,通过@SpringBootApplication注解启动Spring Boot应用,并利用@...
我们使用Spring Boot,SockJs和Bootstrap开发了响应式Web流量监视仪表板,这些仪表板从Cassandra数据库获取视图并使用Web套接字推送到UI。 ================================================== =================...
4. **Spring框架**:Spring不仅用于后端服务的开发,还可以与大数据平台结合,例如Spring Batch用于批处理,Spring Cloud Data Flow用于大数据流处理。Spring Boot简化了微服务的开发,Spring Cloud则为服务发现、...
3. **数据库集成**:Spring Boot通常与MySQL、PostgreSQL等关系型数据库或MongoDB、Cassandra等NoSQL数据库结合使用,用于存储和检索数据。 4. **前端技术**:项目可能使用了React、Vue.js或Angular等现代前端框架...
6. **Spring Boot**:简化Spring应用程序开发,提供自动配置和启动脚本,使开发物联网应用更加便捷。 7. **Actuator**:Spring Boot的监控和健康检查工具,用于监控服务的状态和性能,确保系统的稳定运行。 8. **...
5. 系统集成与测试(2-3周) 6. 性能调优与上线部署(1-2周) 六、预期成果 通过本项目,将构建一个高效、易用的在线视频点播平台,为用户提供流畅的视频观看体验,同时为开发者提供一个可扩展、可维护的系统架构...
睿思BI开源版后台系统是基于Spring Boot框架开发的一个强大数据可视化工具,旨在提供高效的数据分析和零代码编程体验。Spring Boot是Java生态系统中的一个热门框架,它简化了创建独立的、生产级别的基于Spring的应用...
它简化了Spring应用程序的初始设置和配置,使得开发者可以更快地投入到实际开发中。 在物联网(IoT)领域,数据采集系统通常是连接各种传感器和设备,收集实时或定期的环境、设备状态等数据,并将这些数据传输到...
9. **测试与调试**:测试驱动开发(TDD)和持续集成(CI)是现代软件开发的重要组成部分,期刊可能讨论JUnit、Mockito等测试工具的使用,以及如何有效调试Java应用。 10. **分布式系统**:Java在构建分布式系统中的...
- Spring Boot简化了基于Spring的应用程序开发。 - 提供自动配置、起步依赖管理等功能。 #### 三、大数据技术知识点 ##### 1. Hadoop生态系统 - **Hadoop**是分布式存储和计算框架。 - 主要组件包括:HDFS(分布式...
Java与MySQL、PostgreSQL等关系型数据库以及MongoDB、Cassandra等非关系型数据库都有良好的集成。使用NoSQL数据库可以更好地处理海量非结构化数据,如医疗影像、患者日志等。 四、安全性考量 在智慧健康云平台中,...
Spring Boot和Spring Cloud提供了强大的微服务开发和管理工具,包括服务发现、配置中心、熔断机制(如Hystrix)和服务间通信(如Restful API、gRPC)。 五、海量数据处理 面对海量数据,Java提供了大数据处理框架如...
开发技术则包括了前端和后端的各种框架和工具,如前端的React、Vue.js、Angular,后端的Spring Boot、Django、Node.js等,这些技术极大地提高了开发效率并简化了复杂系统的构建。 分布式与微服务架构是现代大型系统...