- 博客(77)
- 收藏
- 关注
原创 StructuredStreaming读取kafka结果输出到mysql
代码:import java.sql.{Connection, DriverManager, PreparedStatement}import org.apache.spark.SparkConfimport org.apache.spark.sql._import org.apache.spark.sql.streaming.{OutputMode, StreamingQuery}object KafkaWC { def main(args: Array[String]): Unit =
2020-08-23 21:42:17
839
原创 很简单的quartz介绍
首先上下依赖最好把log4j的依赖也添加进去,quartz需要打印日志,这里就不添加了. <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>贴一个最简
2020-08-03 19:05:58
367
原创 SpringBoot整合Quartz定时任务
Quartz是一个定时任务框架,相比较于spring boot 中的@Scheduler可以指定复杂的调度并且可以持久化任务,其开发难度也比Scheduler难一些.QuatzAPI中的重要组成部分:Scheduler:与被调度的job交互的主要API,负责Job调度执行监控JobDetail:任务的实例Job:任务执行的逻辑Trigger:触发器,即任务执行计划,规定了任务的执行策略Scheduler的创建java中Thread是线程类,继承Thread类重写run方法,就可以自定义线程处理
2020-08-03 13:14:19
433
原创 Spring Boot最简单的定时任务@Scheduler
Spring Boot 中一般来说定时任务使用@Scheduler注解或者Quartz框架,或者自定义线程实现,最简单的当属@Scheduler注解依赖: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3
2020-07-31 11:50:22
1932
原创 scala模式匹配的多种形式
scala的模式匹配功能十分强大如果cae中涉及到多个类型,那么匹配的变量要不就都是a类型,要么是所有case中类型的父类,比如 a match{case x …case y …case z …}要么 x y z 都是a的类型,要么 就是都是a的子类1 简单匹配(对比java swich语句) val a: Int = 1; a match { case 1 => print(a + 1) case 2 => print(a + 2)
2020-07-30 16:36:25
399
原创 scala隐式转换函数与隐式参数
一 隐式转换函数scala隐式转换是把一种类型转化成另外一种类型,而且不需要我们手动去做,是scala自己完成转换,只是有些时候scala自己找不到如何转换,就需要我们手动提供import隐式转换何时发生:1 当调用本身不存在的方法或者变量时2 方法或者函数参数列表与传入的类型不符时隐式转换需要定义在伴生对象中,以implicit开头,必须有返回值1 B类要调用类中不存在,但是A类中存在的方法或者成员变量(下面以函数说明)class A (var name: String) { def fu
2020-07-30 15:03:52
183
原创 spring boot/spring 后台生成csv
csv格式一行数据每个字段之前以",“隔开,以”\n"作为换行符.controller @ApiOperation(value="获取csv下载",notes = "") @GetMapping(value="/getcsvfile") public Object getCSVFile(HttpServletResponse response){ try { service.getCSVFile(response); St
2020-07-13 19:59:04
890
原创 hive 开窗函数over()
开窗函数over()是将聚合函数以列的形式展开,替代之前需要join的处理数据:CREATE TABLE `test`( `id` int, `class` string, `name` string, `score` int); insert into test values(1,'a','zhang',90),(2,'a','li',80),(3,'a','zhao',95),(4,'a','qian',85),(5,'a','sun',60),(6,'a',
2020-07-10 12:39:49
1471
1
原创 mysql插入更新on duplicate key/replace into(upsert)
针对于插入更新:主键/唯一索引有的话就根据主键/索引更新,没有的话就插入,mysql特有语句是通过on duplicate key 跟replace实现的.1 on duplicate keyinsert into 表名 values(列值1,列值2,列值3…) on duplicate key update 列名1=值/values(列名1),列名2=列值/valules(列名2)…有数据:CREATE TABLE `account` ( `id` int(11) NOT NULL, `
2020-07-09 15:45:16
1672
原创 Spring Boot Security 的简单使用
spring@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { ...
2020-07-07 15:43:17
140
原创 mysql InnoDB引擎与锁机制
1 共享锁与排它锁共享锁(S锁):指读锁排它锁(X锁):写锁,更新或删除锁事务A对记录加共享锁,事务B对相同数据可以加共享锁,但是不能加排它锁事务A对记录加排它锁,事务B对相同数据既不能加共享锁也不能加排它锁.select 时也可以显示加共享锁:在语句最后加lock in share mode;select 时也可以显示加排他锁:在语句最后加for update;2 意向锁意向共享锁(IS):表共享锁 lock TABLES 表名 read; unlock tables;意向排它锁(I
2020-07-07 13:24:35
498
原创 mysql的MVCC原理
MVCC:Multiversion concurrency control,多版本并发控制,提供并发访问数据库时,对事务内读取的到的内存做处理,用来避免写操作堵塞读操作的并发问题.InnoDB中锁可以分成读锁跟写锁,读锁与写锁是互斥的,通过锁机制可以实现解决事务并发带来的脏读,不可重复读,幻读,但是加锁的话开销大,数据库本身除了安全性还需要有较好的性能,所以就用MVCC代替了读锁,减少了加锁解锁的开销,也就是通过select 查询直接走MVCC,客户以跟update等操作并发执行.MVCC在mysql中
2020-07-06 14:12:44
153
原创 mysql事务隔离级别
事务并发可能产生的问题:1 脏读 一个事务读取到了另外一个事务修改但是还没有提交的数据,比如,一个事务A查询i=1的数据,查询出来后是i=1 name=‘zhangsan’,此时,另外一个事务B执行了update语句,把id为1的记录name改成了’lisi’,但是还没有提交,此时A再次执行查询发现,结果变成了i=1,name=‘lisi’,这个现象叫做脏读2 不可重复读 事务A执行第一次查询,结果i=1 name=‘zhangsan’,此时事务B修改了name为’lisi’并且提交了事务,此时A再次查
2020-07-03 14:50:10
141
原创 azkaban调度实例(impala+kudu+hdfs+sqoop+mysql )
创建一个基于impala+kudu+hdfs+sqoop+mysql 的调度test实例kudu存储ods数据,impala用于计算,结果表落入hdfs,sqoop导出hdfs文件(表)到mysql以下文件顺序依次调用azkaban配置文件:bas.properties###源库名 用于impala/hive仓库取数计算origindb=ods###库名 用于计算或者存储中间结果targetdb=test### mysl数据库 用于sqoop导出 ###dburl=jdbc:mysql:
2020-06-30 11:47:03
910
原创 sqoop export命令参数
--direct 利用数据库自带的导入导出工具--export-dir 指定要导出的文件所在hdfs目录--m或者--num-mappers 启动多少个mapper 默认4--table 指定的导入的关系型数据库的表名--update-key 对某些字段进行更新,相当于upsert--update-mode updateonly或者allowinsert(默认)--
2020-06-29 14:36:08
2023
原创 sqoop import命令参数
--append 将数据追加到hdfs中--as-avrodatafile 将文件导入到一个avro文件中--as-sequencefile 将数据导入到一个sequencefile中--as-textfile 将数据导入到一个文本文件--boundary-query 边界查询,导入的数据为该参数的值(一条sql语句)所执行的结果区间内的数据--columns 指定要导入的列,用逗号分隔--direct
2020-06-29 14:26:04
796
原创 sqoop 公共命令详解
常用命令注:所有命令 ./sqoop help import-参数 中间没有空格,博客中- -会显示成一条杠,所以这里加了空格–connect数据库连接地址––––––––––––––––––––––––––––––––
2020-06-29 14:05:26
424
原创 sqoop常用命令
sqoop命令bin/sqoop xxx1 import 将数据导入hdfs2 export 将数据从hdfs导出3 codegen 获取关系型数据库中的表数据生成java jar4 create-hive-table 创建hive表5 eval 查看sql执行结果6 import-all-tables 导入库下面所有的表到hdfs7 job 生成sqoop任务,以便后续执行(类似于定义一个函数,用时候直接通过job名字调用)8 list_databases 列出所有数据库名9 l
2020-06-22 22:41:18
286
原创 hive导入/导出表数据
导入准备数据创建表create table hive_test(id int,name string) row format delimited fields terminated by ',';1 直接导入本地文件load data local inpath '/export/data/hive_input/hive_test.txt' into table hive_test;如果是hdfs文件去除local2 put文件到hive对应的hdfs文件先创建表,然后通过将文件上传到h
2020-06-14 00:08:37
430
原创 kafka-topics.sh工具:查看/删除/修改/创建主题
kafka-topics.sh 是kafka自带管理主题的工具.创建主题:创建一个叫 topicName并且有三个分区,每个分区有三个副本的副本./kafka-topics.sh --zookeeper zkip:2181 --create --topic topicName --replication-factor 3 --partitions 3–zookeeper 指定zk连接地址(kafka主题以及分区信息保存在zk)–create 创建 (–delete 删除)–rep
2020-06-06 20:19:08
2151
原创 hive 行转列/列转行 多行转一行/一行转多行
mysql跟hive列转行/行转列一样,但是多行转一行,一行转多行就不太一样了链接:mysql 行转列,多行转一行,列转行,一行转多列hive启动hive时 ./hive -S (去除MR打印日志)hive命令行 set hive.exec.mode.local.auto=true; 设置本地模式数据准备:create table student_score(s_id int,s_name string,s_sub string,s_score bigint);insert into stu
2020-05-20 15:44:22
7137
原创 mysql 行转列,多行转一行,列转行,一行转多列
创建表语句:CREATE TABLE student_score(id BIGINT PRIMARY key auto_increment,s_name VARCHAR(20) ,s_sub VARCHAR(20),s_score INT );insert into student_score values(null,'张三','数学',90);insert into student_score values(null,'张三','语文',85);insert into student_
2020-05-19 18:46:00
14575
2
原创 java socket模拟多人聊天
模拟一个多人聊天软件用于了解socket基础首先是服务器端import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ConcurrentHashMap;public class MyServer { //用于存储在线用户...
2020-04-30 15:17:21
350
原创 springboot 文件上传异常The temporary upload location is not valid
如下报错:Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temp...
2020-04-29 09:56:38
399
原创 java多线程(三) 线程通信与线程池
java多线程(三) 线程通信与线程池java多线程(一) 基础理论与执行状态java多线程(二) 控制线程与线程同步java多线程(三) 线程通信与线程池*线程通信wait() notify() notiryAll() 这三个方法是Object类的方法,只能在隐式锁中使用,sleep(),yeild(),join()是Thread类的方法wait()wait()线程等待,并且释...
2020-04-16 18:16:36
202
原创 java多线程(二) 控制线程与线程同步
控制线程对于线程的控制:一 join()等待线程完成二 sleep() 线程主动进入阻塞态与yeild() 线程让步三 后台线程join()public class MyThread extends Thread { @Override public void run() { System.out.println("2"); } ...
2020-04-15 17:02:24
277
原创 java多线程(一) 基础理论与执行状态
* 首先说一下进程与线程的区别进程代表着一个应用(程序),是操作系统资源分配的最小单位.线程是进程的做成部分,有了进程才有了线程,并且一个进程至少拥有一个线程.举个例子:建造房子是一个进程的话,建造房子至少需要一个人,每个人就是一个线程,如果有多个人,那么每个人可以干相同的事情,也可以干不同的事情,可以同一时间一起做事情(同时要结合后面的并行与并发的概念,这里的同时指的是并发而不是并行),也可...
2020-04-15 16:28:49
186
原创 java正则表达式字符解释与基本应用
字符解释\t制表符\n换行符)\r回车符\f换页符\a报警符特殊字符解释$匹配一行的结尾,匹配本身^匹配一行的开头也表示非,看使用位置()子表达式的开始结束位置[]中括号表达式的开始和结束位置{}用于标记前面子表达式出现的频度*指定前面子表达式0或多次+指定前面子表达式...
2020-03-27 15:24:30
124
原创 前后端分离Nginx配置文件
server { listen 9999;# 访问的端口 localhost:9999 server_name localhost; #配置访问映射 localhost 等价于localhost:9999 #charset koi8-r; #access_log /var/log/nginx/host.access.log main; ...
2019-12-27 14:47:07
407
原创 Spring Boot Actuator 整合 Security
Actuator介绍链接Actuator是spring(boot)中 应用监控功能(应用运行环境已经运行状况)Security是spring(boot)中 安全性保证(登陆、权限等)将两者整合是为了完成只有admin用户才可以访问查看应用监控的功能,并且spring提供的这两个模块刚好可以使我们以最快的速度完成开发。一个最简单的案例首先依赖 <dependency> ...
2019-12-20 18:21:42
3069
原创 Spring Boot Actuator
Actuator简介Actuator是springboot中,用于对应用程序进行监视和管理的功能,能够获取到应用的运行情况和运行环境.:健康检查、审计、统计、HTTP追踪、环境信息。Maven依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId&...
2019-12-20 14:18:38
936
原创 java中public protected default private 访问权限
关于java中public protected default private (访问权限由高到低) 作用范围,我做了一个对比,可以清晰的看到权限的不同首先是publicpublic关键字,因为不存在继承关系,所以只要不是farther子类的类,在其类的内部都是无法直接访问,但是在main方法中可以访问protectedprotected关键字是与farther类同一个包下的所有类(...
2019-12-11 16:57:23
561
1
原创 Swagger2的使用
这里不做基本介绍了,新手只需要知道是一个接口文档规范,按照它的规范(注解形式)能自动生成web接口文档,方便前后端数据交互就可以了,重点在于使用spring boot 中swagger2的依赖 <dependency> <groupId>io.springfox</groupId> <art...
2019-12-10 16:56:53
354
1
原创 java生成excel(.xlsx)
java POI 生成excelexcel分 .xls .xlsx 格式xls 使用HSSFWorkbookxlsx 使用SXSSFWorkbookimport com.jdbc.DataImportJdbc;import com.mapping.InitFields;import org.apache.poi.ss.usermodel.CellStyle;import org.a...
2019-11-27 13:29:07
1122
1
原创 java解析大数据量xlsx格式excel
百度了好久关于解析excel的内容都找不到自己想要的东西,所以希望跟我有一样需求的人,能够因为这篇文章少走弯路.excel有两种格式,一种xls格式(97),一种xlsx格式(07).提到excel API可能首先想到的是POI,使用POI能够读写所有的excel,但是POI针对于每种格式的excel分了好几种模式,UserModel EventModel UserEventModel本人...
2019-11-02 15:36:01
1877
原创 Spring Boot 整合 Mybatis
最近在学习boot,记录自己所学的一点东西,如果有错误请指正.本文介绍Boot整合Mybatis 两种方式: 基于注解Mapper,基于XML Mapper首先是数据库的创建表语句USE test;CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, ...
2019-10-15 12:00:58
153
原创 Spring Boot 操作mysql 数据库
最近在学习boot所以记录下当前学习的一点东西,如有错误请指正.JdbcTemplate操作数据库USE test;CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `money` double DEFAULT NULL, PRIMARY KE...
2019-10-15 10:55:16
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅