`
wiselyman
  • 浏览: 2096492 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82514
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130906
社区版块
存档分类
最新评论

Spring Boot与Spark、Cassandra集成开发

 
阅读更多

本文演示以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-connectorspark依赖
		<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中配置sparkcassandra路径

 

此处特别说明spark://master:7077是域名形式而不是ip地址,可修改本地hosts文件将masterip地址映射。

spark.master: spark://master:7077
cassandra.host: 192.168.1.140
cassandra.keyspace: hfcb
  • 配置SparkContextCassandraSQLContext
@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/

0
1
分享到:
评论

相关推荐

    Spring Boot与Spark、Cassandra系统集成开发示例

    在现代大数据处理中,Spring Boot、Spark和Cassandra的集成为构建高效、可扩展的数据处理系统提供了强大的工具。本文将详细介绍如何将这三个组件整合到一起,以实现一个完整的数据分析和存储解决方案。 首先,我们...

    计算机课程毕设:基于spark、mahout和spring boot构建的智能推荐系统.zip

    **Spring Boot**: Spring Boot是Java开发的一个流行框架,它简化了创建独立的、生产级别的基于Spring的应用程序。在本系统中,Spring Boot可能被用作后端服务的基石,提供RESTful API以供前端或客户端应用调用。通过...

    bigdata_springboot,springboot整合

    这个"bigdata_springboot"项目显然涉及到Spring Boot与大数据处理的集成,这是一个复杂而重要的主题,因为Spring Boot的易用性和大数据的处理能力相结合,能够构建高效的数据驱动应用。 首先,我们要理解Spring ...

    一个spark streaming+Cassandra、分布式作业调度系统总结

    一个项目的总结文档,英文,主要功能: 1、分布式作业管理、调度、监控;...web部分采用spring boot开发,前端采用angularJS组织页面相关的各个部分,系统的技术和效果在2016~2017年在行业具有一定先进性。

    数据整理的一份数据11111111

    Spring Boot可以与Apache Spark、Hadoop等大数据处理框架结合,实现分布式数据分析。 5. 数据可视化:通过图表或报表展示数据结果,便于理解。Spring Boot可以与前端框架(如Thymeleaf、React、Vue.js)集成,构建...

    springboot2.0.3整合

    springboot2.0.3整合ELK,REDIS,SPARK,CASSANDRA,MONGODB,MYBATIS为了方便学习把应用的技术模块化,dome项目为主项目,kafka和多缓存配置在路上,有需要的请留言。

    数据源管理 分布式NoSQL系统,Cassandra集群管理.docx

    - **资源整合能力**:Cassandra易于与其他开源组件(如Hadoop、Spark、Kafka、Solr等)集成,使其在大数据处理场景中扮演着重要角色。 #### 集群环境搭建 **2.1 环境概览** - **Java版本**:JDK 1.8 - **...

    基于Spring Cloud分布式物联网(IOT)平台源码.zip

    Spring Boot的使用使得开发过程更为简便,它简化了初始化、配置以及依赖管理。在IoT平台中,每个微服务都可以用Spring Boot快速搭建,通过@SpringBootApplication注解启动Spring Boot应用,并利用@...

    lambda-arch:将Lambda架构与Spark,Kafka和Cassandra一起应用

    我们使用Spring Boot,SockJs和Bootstrap开发了响应式Web流量监视仪表板,这些仪表板从Cassandra数据库获取视图并使用Web套接字推送到UI。 ================================================== =================...

    携程大数据开发平台实践

    4. **Spring框架**:Spring不仅用于后端服务的开发,还可以与大数据平台结合,例如Spring Batch用于批处理,Spring Cloud Data Flow用于大数据流处理。Spring Boot简化了微服务的开发,Spring Cloud则为服务发现、...

    智能热度分析和自媒体推送平台.rar

    3. **数据库集成**:Spring Boot通常与MySQL、PostgreSQL等关系型数据库或MongoDB、Cassandra等NoSQL数据库结合使用,用于存储和检索数据。 4. **前端技术**:项目可能使用了React、Vue.js或Angular等现代前端框架...

    MF00641-Spring Cloud分布式物联网(IOT)平台.zip

    6. **Spring Boot**:简化Spring应用程序开发,提供自动配置和启动脚本,使开发物联网应用更加便捷。 7. **Actuator**:Spring Boot的监控和健康检查工具,用于监控服务的状态和性能,确保系统的稳定运行。 8. **...

    09-基于java(springboot框架)在线视频点播系统 开题报告.zip

    5. 系统集成与测试(2-3周) 6. 性能调优与上线部署(1-2周) 六、预期成果 通过本项目,将构建一个高效、易用的在线视频点播平台,为用户提供流畅的视频观看体验,同时为开发者提供一个可扩展、可维护的系统架构...

    睿思bi开源版后台系统,基于Springboot构建,快速分析数据及可视化,0代码编写.zip

    睿思BI开源版后台系统是基于Spring Boot框架开发的一个强大数据可视化工具,旨在提供高效的数据分析和零代码编程体验。Spring Boot是Java生态系统中的一个热门框架,它简化了创建独立的、生产级别的基于Spring的应用...

    基于SpringBoot框架搭建的物联网数据采集系统服务器端.zip

    它简化了Spring应用程序的初始设置和配置,使得开发者可以更快地投入到实际开发中。 在物联网(IoT)领域,数据采集系统通常是连接各种传感器和设备,收集实时或定期的环境、设备状态等数据,并将这些数据传输到...

    Java Magazine SeptemberOctober 2017

    9. **测试与调试**:测试驱动开发(TDD)和持续集成(CI)是现代软件开发的重要组成部分,期刊可能讨论JUnit、Mockito等测试工具的使用,以及如何有效调试Java应用。 10. **分布式系统**:Java在构建分布式系统中的...

    大数据面试宝典包含java基础和spring面试题

    - Spring Boot简化了基于Spring的应用程序开发。 - 提供自动配置、起步依赖管理等功能。 #### 三、大数据技术知识点 ##### 1. Hadoop生态系统 - **Hadoop**是分布式存储和计算框架。 - 主要组件包括:HDFS(分布式...

    行业文档-设计装置-基于Java开发的智慧健康云平台.zip

    Java与MySQL、PostgreSQL等关系型数据库以及MongoDB、Cassandra等非关系型数据库都有良好的集成。使用NoSQL数据库可以更好地处理海量非结构化数据,如医疗影像、患者日志等。 四、安全性考量 在智慧健康云平台中,...

    advancedJava.rar

    Spring Boot和Spring Cloud提供了强大的微服务开发和管理工具,包括服务发现、配置中心、熔断机制(如Hystrix)和服务间通信(如Restful API、gRPC)。 五、海量数据处理 面对海量数据,Java提供了大数据处理框架如...

    分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、云原生、大数据与云计算技术和渗透技术。另外.zip

    开发技术则包括了前端和后端的各种框架和工具,如前端的React、Vue.js、Angular,后端的Spring Boot、Django、Node.js等,这些技术极大地提高了开发效率并简化了复杂系统的构建。 分布式与微服务架构是现代大型系统...

Global site tag (gtag.js) - Google Analytics