SpringBoot构建大数据开发框架

本文详细介绍了如何使用SpringBoot构建大数据开发框架,包括整合Spark、Kafka、Elasticsearch、Mybatis、Redis和Neo4J。通过SpringBoot简化项目配置,实现快速启动和监控。文中提供Scala版本的Spark和Elasticsearch数据读写示例,以及Kafka数据流处理到ES的Demo。同时,还涵盖了Mybatis集成和Druid数据源配置。
摘要由CSDN通过智能技术生成

为什么使用SpringBoot

1、web工程分层设计,表现层、业务逻辑层、持久层,按照技术职能分为这几个内聚的部分,从而促进技术人员的分工
2、需要各种XML配置,还需要搭建Tomcat或者jetty作为容器来运行,每次构建项目,都需要经历此流程
3、一个整合良好的项目框架不仅仅能实现技术、业务的分离,还应该关注并满足开发人员的“隔离”
springBoot是什么
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架致力于实现免XML配置,提供便捷,独立的运行环境,实现“一键运行”满足快速应用开发的需求。从而使开发人员不再需要定义样板化的配置。

从根本上讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。
它的优点

使编码变得简单
spring boot采用java config的方式,对spring进行配置,并且提供了大量的注解,极大地提高了工作效率。
使配置变得简单
spring boot提供许多默认配置,当然也提供自定义配置。但是所有spring boot的项目都只有一个配置文件:application.properties/application.yml。用了spring boot,再也不用担心配置出错找不到问题所在了。
使部署变得简单
spring boot内置了三种servlet容器:tomcat,jetty,undertow。

所以,你只需要一个java的运行环境就可以跑spring boot的项目了。spring boot的项目可以打成一个jar包,然后通过java -jar xxx.jar来运行。(spring boot项目的入口是一个main方法,运行该方法即可。 )
使监控变得简单
spring boot提供了actuator包,可以使用它来对你的应用进行监控。它主要提供了以下功能:
构建

整合spark

SpringBoot构建大数据开发框架

Scala版本demo
object WordCount {
def main(args: Array[String]): Unit = {
/**

  • 第一步:创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息
  • 例如说通过setMaster来设置程序要连接的Spark集群的Master的URL
  • 如果设置为local,则代表Spark程序在本地运行,特别适合于配置条件的较差的人
    */
    val conf = new SparkConf()
    //设置应用程序的名称,在程序运行的监控界面可以看到名称
    conf.setAppName("MyFirstSparkApplication") 
    //此时程序在本地运行,无需安装Spark的任何集群
    conf.setMaster("local") 
    /**
  • /创建SparkContext对象,通过传入SparkConf实例来定制Spark运行的具体参数和配置信息
    */
    val sc = new SparkContext(conf) 
    /**
  • 第三步:根据具体的数据来源(HDFS,HBase,Local FS(本地文件系统) ,DB,S3(云上)等)通过SparkContext来创建RDD
  • RDD的创建基本有三种方式,根据外部的数据来源(例如HDFS),根据Scala集合,由其他的RDD操作产生
  • 数据会被RDD划分成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴
    */

    //文件的路径,最小并行度(根据机器数量来决定)
    val lines= sc.textFile("D://hadoop//spark-2.2.0-bin-hadoop2.7//README.md", 1)
    //读取本地文件,并设置Partition = 1 //类型推导得出lines为RDD
    /**

  • 第四步:对初始的RDD进行Transformation级别的处理,如果你对大数据开发感兴趣,想系统学习大数据的话,可以加入大数据技术学习交流扣扣群:522+数字189+数字307,欢迎添加,私信管理员,了解课程介绍,获取学习资源例如map,filter等高阶函数等的编程,来进行具体的数据计算
  • 4.1:将每一行的字符串拆分成单个的单词
  • 4.2:在单词拆分的基础上对每个单词的实例计数为1&#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值