spring boot整合scala和spark做大数据预言

news/2024/11/8 15:04:19/

原来用jetty 和 restful 做过驱动spark的计算框架,最近想用spring boot +scala + spark 重新做一个,一下是pom.xml 和代码分享
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.i-tudou.bd</groupId><artifactId>spring-spark-demo</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>A Camel Scala Route</name><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><scala.version>2.11</scala.version><spark.version>2.4.0</spark.version></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.3.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_${scala.version}</artifactId><version>${spark.version}</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions><scope>compile</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.codehaus.janino</groupId><artifactId>janino</artifactId><version>3.0.8</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_${scala.version}</artifactId><version>${spark.version}</version><scope>provided</scope></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_${scala.version}</artifactId><version>${spark.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency></dependencies></project>

application.scala 分享

package com.itudou.bdimport org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.{EnableAutoConfiguration, SpringBootApplication}
import org.springframework.context.annotation.{ComponentScan, Configuration}@Configuration
@EnableAutoConfiguration
@ComponentScan
@SpringBootApplication
class Config
object springsparkdemoApplication extends App{SpringApplication.run(classOf[Config])
}

sparkconfig.scala 分享

package com.itudou.bd.configimport org.apache.spark.{SparkConf, SparkContext}
import org.springframework.context.annotation.{Bean, Configuration}@Configuration
class Sparkconfig {private val sparkHome = "."private val appName = "sparkTest"private val master = "local"@Beandef SparkConf: SparkConf  = {val conf = new SparkConf().setAppName(appName).setMaster(master)return conf}@Beandef SparkContext = new SparkContext(SparkConf)
}

DataController.scala 分享

package com.itudou.bd.Controllerimport java.util.Propertiesimport org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation._import scala.util.parsing.json.{JSON, JSONObject}@RestController
@RequestMapping (value = Array("DataController/data/"))
@CrossOrigin
class DataController {@Autowiredvar sc:SparkContext = _@GetMapping(value = Array("test"))def test ={val url = "jdbc:mysql://10.1.3.49:3309/tdgistaskDB?useUnicode=true&characterEncoding=UTF-8&user=root&password=123";val prop = new Properties();val sqlContext = new SQLContext(sc);val df = sqlContext.read.jdbc(url, "t_task", prop);df.createOrReplaceTempView("t_task")//使用SQL语句进行查询var df1 = sqlContext.sql("select * from t_task where parent_id = 0")println("1.------------->" + df1.show().toString())//println("1.------------->" + df1.rdd.partitions.size)JSON.parseFull("{lige:1}")}}

http://www.ppmy.cn/news/917796.html

相关文章

matlab学习笔记三(11.2)

1.clear 的功能:清除工作间的变量。 通常的形式: 1.lear :清除工作间的所有的变量。 2.clear var:清除名为var的变量。可以 clear var*来清除所有以var开头的变量名。 >> my_func=@sinmy_func = @sin>> my_m=magic(3)my_m =8 1 63 5 74 …

golang实现ftp实时传输文件

一、项目简介 本项目主要实现的功能是ftp客户端不断地将xml文件和jpg文件实时地上传到服务器&#xff0c;当然也可以是其他格式的文件。每当ftp客户端取到一个文件之后&#xff0c;将文件上传到服务器后&#xff0c;然后将其删除。项目实现可配置&#xff0c;如果开发者有类似…

MFC第十七天 CFont类与LOGFONT结构体、记事本文件打开和保存及是否保存的逻辑流程分析、PreTranslateMessage虚函数与快捷键

文章目录 CFont类与LOGFONT结构体CFontDialog字体信息结构体与HFONT句柄的关系 记事本文件拖入、打开和保存及是否保存的逻辑流程分析PreTranslateMessage虚函数与快捷键附录 CFont类与LOGFONT结构体 CFontDialog 构造函数介绍 public: //用于指定字体对话框的初始字体属性&…

Opencv学习_3 (Opencv读取视频 视频进度控制 写视频)

opencv读取视频&#xff1a; 使用opencv读取视频主要用到这几个函数&#xff1a;cvCreateFileCapture cvQueryFrame (或cvGrabFrame cvRetrieveFrame) cvReleaseCapture。 1&#xff1a;简单介绍&#xff1a; CvCapture是一个结构体&#xff0c;用来保存图像捕获所需要的信息…

Spring+SpringMVC+Mybatis整合【L】

我喜欢直接上代码&#xff0c;这里做个解说&#xff0c;代码下载 http://download.csdn.net/detail/q260996583/9905047 项目框架图&#xff1a; 1、pom.xml 文件内容 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/20…

java编写创建json,将json数据转换成xml,ftp发送到服务器

一.项目简介 1.环境 1).jdk 1.6 2.jar包 commons-net-1.4.1.jar gson-2.2.4.jar jar 建议大家去官网上下载 3.项目结构 二.创建Json 1.javaBean package kingdom.json;public class TransData {private String fq_name; //交易发起人private String js_name; //交…

React Hooks 实用指南

为什么80%的码农都做不了架构师&#xff1f;>>> 前言 在React Conf 2018会议中&#xff0c;Dan Abramov 介绍了 React Hooks。官方的描述为 Hook是一项新功能提案&#xff0c;可让您在不编写类的情况下使用状态和其他React功能。 它们目前处于React v16.7.0-alpha中…

iPhone开发入门(10)— 设备上运行程序

博主&#xff1a;易飞扬原文链接 : http://www.yifeiyang.net/introduction-to-iphone-development-10-devices-running-the-program/转载请保留上面文字。 注册 iPhone Developer Program 启动程序的准备 连接Xcode 生成证明 创建和下载配置文件 注册证明书 设备注册 生成App …