自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (3)
  • 收藏
  • 关注

原创 scala、spark

目录大数据开发复习课程10、scala10.1、scala介绍10.2、scala解释器10.3、scala的基本语法10.3.1、声明变量10.3.2、字符串10.3.3、数据类型10.3.3.1、scala类型层次结构10.3.4、表达式10.3.4.1、条件表达式10.3.4.2、块表达式10.3.5、循环10.3.5、for循环10.3.5.1、嵌套for循环10.3.5、while循环10.3.6、方法10.3.6.1、方法参数10.3.7、函数10.4、数据结构10.4.1、数组10.4.1、元

2021-08-29 22:32:04 427

原创 hdfs、MapReduce、yarn、hive、sqoop、HBASE、Redis、kafka、ES

目录大数据开发复习课程1、Hadoop1.1、介绍Hadoop1.2、Hadoop特性优点1.3、hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么?1.4、Hadoop主要的配置文件1.5、Hadoop集群重要命令1.6、HDFS的垃圾桶机制1.7、HDFS写数据流程1.8、Hadoop读数据流程1.9、SecondaryNameNode的作用1.10、HDFS的扩容、缩容(面试)1.动态扩容1.1. 基础准备1.2. 添加datanode1.3.datanode负载均衡服务1.4.添

2021-08-29 22:30:58 1212

原创 JVM+GC

JVM+GC1.JVMJVM:java Virtual Machine java 虚拟机JDK:Java Develpment Kit java 开发工具JRE:Java Runtime Environment java运行时环境[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XmWDriIN-1629621934552)(image/image.png)]2.JVM中共享区,和gc root1、堆区和⽅法区是所有线程共享的,栈、本地⽅法栈、程序计数器是每个

2021-08-22 16:45:48 180

原创 tomcat.nginx+JDBC.Servlet

tomcat/nginx+JDBC/Servlet1.JSP 和 servlet 有什么区别JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩展名为 JSP 的文件。JSP 侧重于视图,servlet 主要用于控制逻辑。2.JSP 有哪些内置对象?作用分别是什么?J

2021-08-22 16:44:50 1129 2

原创 MyBatis.Redis.+mysql.mycat

MyBatis/Redis/+mysql/mycat1.Mybatis优缺点优点:1、基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签, 支持编写动态 SQL 语句, 并可重用。2、与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;3、很好的与各种数据库兼容( 因为 MyBatis 使用 JDBC 来连接数据库,所以只要JDB

2021-08-22 16:42:32 660

原创 Spring、SpringMVC、SpringBoot

Spring、SpringMVC、SpringBoot1.Spring是什么?Spring是一个轻量级的控制反转(Ioc)面向面切编程(AOP)容器的开源框架。降低了开发的难度、低入侵、解耦合、声明事务管理方便集成其他框架、容器spring的大小和开销都是轻量级的通过控制反转(Ioc)和依赖注入(DI)将对象的创建和属性赋值工作都交给spring处理,从而达到解耦合的目的提供了 面向切面编程的功能,可以通过分离应用的业务逻辑与系统服务来进行内聚性的开发因为包含管理对象的配置和生命

2021-08-22 16:40:07 4005

原创 类加载器双亲委派模型

JVM中存在三个默认的类加载器:BootstrapClassLoaderExtClassLoaderAppClassLoader他们的关系是:AppClassLoader的⽗加载器是ExtClassLoader,ExtClassLoader的⽗加载器是BootstrapClassLoader。JVM在加载⼀个类时,会调⽤AppClassLoader的loadClass⽅法来加载这个类,不过在这个⽅法中,会先使⽤ExtClassLoader的loadClass⽅法来加载类,同样ExtClas

2021-08-21 23:38:42 83

原创 ConcurrentHashMap

在保证线程安全的前提下,又尽可能的提高并发效率JDK1.8之前采用分段锁(16段),控制锁的粒度,减少线程间的冲突1.8之后采用CAS+少量SyschronizedCAS:Compare and Swap 比较 并交换 V(备份)、E(预期)、B(新值)对原值进行备份得到V对V进行代码块的执行,得到新的值B(这时候不会吧B直接赋值给原值,而是将B赋值给预期值E)然后重新从原值那里那一份值,看看还 是不是最开始的V的值判断E=V?(由于线程交替执行所导致的原来的值可能改变)如果相等就将B

2021-08-21 23:33:00 164

原创 Hadoop-总结

1.HDFS读写流程1.1HDFS写流程客户端发送上传请求。nameNode 收到客户端的上传请求后会判断这个用户有没有上传的权限和要上传的文件在hdfs目录下是否已经存在。如果两个条件都满足就会返回给客户端一个可以上传的消息。否则就报错客户端在接收到可以上传的消息后会对上传的文件进行切片划分,默认是128M,切分完之后会向NameNode发送请求,问问 第一个block块应该上传到哪些服务器上。(为啥要分块hdfs 设计的原则是数据的寻址时间占传输时间的 1%,寻址时间一般是 10 ms,那么传

2021-08-21 21:33:40 880

原创 Flink 基于事件时间的窗口计算,和迟到数据的处理

import org.apache.flink.api.scala.createTypeInformationimport org.apache.flink.streaming.api.TimeCharacteristicimport org.apache.flink.streaming.api.functions.AssignerWithPeriodicWatermarksimport org.apache.flink.streaming.api.scala.function.ProcessAllW

2021-08-19 21:38:20 942

原创 Flink(十)窗口计算

一、简介窗口计算:flink的灵魂窗口计算就是把无界数据流切分为有限大小的“bucket”—>窗口(bucket/window/panel),在窗口上应用计算换上完成计算处理核心:窗口的划分和计算我们经常需要在一个时间窗口维度上对数据进行聚合,窗口是流处理应用中经常需要解决的问题。Flink的窗口算子为我们提供了方便易用的API,我们可以将数据流切分成一个个窗口,对窗口内的数据进行处理。大致程序结构:按照有没有进行keyby分成了两种 不同的处理方式首先,我们要决定是否对一个DataS

2021-08-18 22:15:08 2214 2

原创 Flink(九) 状态可查询 Queryable State

一、简介Flink提供的有状态可查询机制,可以通过第三方程序读取到flink内部的状态数据就是flink计算之后的结果(state),允许通过第三方应用程序查询到1.1应用场景用户在进行登录前需要同过flink中获取到状态来判断本次登录是否有风险说明:二、架构说明:在Flink的状态可查询的架构中,存在三个基本概念QueryableStateClient:第三方程序,不是flink架构中的内容QueryableStateClientProxy:flink架构中的一部分,用来处理客

2021-08-17 20:35:29 1683

原创 Flink(八) 广播状态模式 Broadcast State Pattern

一、简介广播状态:把状态广播出去1.1 为啥要将状态广播处去状态是一个数据流中计算过程中存储的数据,它只是在自己的数据流中存在,如果别的数据流也想使用你这个数据流中的状态那就需要你将你的数据流中的状态进行广播共享,之后才能使用1.2 状态广播的过程需求将数据流2中的状态广播给数据流1使用步骤:先创建数据流1和数据流2数据流2将自己的数据放在状态中,形成广播流数据流1需要使用该状态就将数据1的流连接上广播流,然后进行操作使用注意:数据流1获取到的状态必须和数据2放进去的状态为同一个

2021-08-17 20:11:03 586

原创 Flink(七) Checkpoint/Savepoints

一、简介持久化,说的是两种不同的持久化方式,Checkpoint自动持久化。和Savepoints手动持久化checkpointcheckpoint是由flink定期的,自动的进行数据的持久化(把状态中的数据写入到磁盘(HDFS))。新的checkpoint执行完成之后,会把老的checkpoint丢弃掉JobManager负责checkpoint的发起以及协调。JobManager节点会定期向TaskManager节点发送Barrier(实际上是JobManager创建的CheckpointCo

2021-08-16 20:58:22 629

原创 Flink(六) State backend

一、简介说的是持久化状态的数据存放在哪默认情况下,所有的状态都存储在 JVM 的堆内存中,在状态数据过多的情况下,这种方式很有可能导致内存溢出,因此 Flink 该提供了其它方式来存储状态数据,这些存储方式统一称为状态后端 (或状态管理器)Flink中定义了三种State BackendThe MemoryStateBackend:内存The FsStateBackend:文件系统,比如hdfsThe RocksDBStateBackend:DB就是说数据可以存在内存中,也可以存在HDFS

2021-08-16 20:43:46 2365

原创 Flink(五) State Time-To-Live(TTL)

一、简介State Time-To-Live(TTL) Flink中状态的存活时间。在开发Flink应用时,对于许多有状态流应用程序的一个常见要求是自动清理应用程序状态,以有效管理状态大小。或控制应用程序状态的访问时间。从 Flink 1.6 版本开始,社区为状态引入了TTL(time-to-live,生存时间)机制,支持Keyed State 的自动过期,有效解决了状态数据在无干预情况下无限增长导致 OOM 的问题。1.1 为啥要清理状态状态也是数据,数据就会占用空间,那Flink是做大数据的,

2021-08-16 20:09:48 646

原创 Flink(四) 状态管理 1

一、状态是什么?1.1有状态和无状态:Flink不是要做流处理嘛。那当一个数据流过来的时候,第一个数据首先会被flink中的算子执行,执行完成 后会生成一个执行结果这个执行后的结果,例如是输出一下,后续再过来的数据,例如第二个数据的计算就和第一个数据的计算毫无关系了,这就是无状态这个执行后的记过。例如是需要做求和的计算,后续再过来的数据例如,的第二个数据的计算需要依赖与第一次计算的结果,这就是有状态的计算1.2.Flink中的有状态流计算1.2.1 flink中主要使用它的有状态计算我们

2021-08-15 08:37:26 1133

原创 Flink (三) 处理数据的流程

一、Flink处理数据的流程flink 和之前的Spark一样,整个技术无非分为三个过程:数据的读取,数据的计算,计算完数据的输出1、数据的读取1.1 怎么读取flink 中的数据的来源可以通过 StreamExecutionEnvironment.addSource(sourceFunction)添加数据源sourceFunction可以使用flink中自带的,用户也可以自定义。自定义的时候可以实现SourceFunction接口,也可以通过实现ParallelSourceFunction或者

2021-08-14 21:32:04 2482

原创 Flink (二) 运行架构

一、运行流程当用户提交完job之后,就交给分发器,分发器就会启动并将应用移交给一个JobManager去做管理JobManager是整个调度的核心,启动它并把当前应用提交。JobManager会对当前任务进行分析需要多少个task任务,需要多少个slots资源去执行,进行并行度调整,得到跑在taskManager上的执行图。JobManager向ResourceManager去做请求slots,RM去启动taskManager,它把自己的slots向ResourceManager去注册(告诉它每个t

2021-08-14 11:13:54 185

原创 Flink (一) 入门

一 、简介1.1 发展史大数据的飞速发展,也促使了各种计算引擎的诞生。2006年2月诞生的Hadoop中的MapReduce,2014年9月份诞生的Storm以及2014年2月诞生的Spark都有着各自专注的应用场景。特别是Spark开启了内存计算的先河,其计算速度比Hadoop的MapReduce快100倍,以此赢得了内存计算的飞速发展。或许因为早期人们对大数据的分析认知不够深刻,亦或许当时业务场景大都局限在批处理领域,从而使得Spark的火热或多或少的掩盖了其他分布式计算引擎的身影。但就在这个时候,

2021-08-14 09:48:59 185

翻译 Spark总结

Spark1.spark中的RDDRDD(Resilient Distributed Dataset)叫做分布式数据集,是spark中最基本的数据抽象,它代表一个不可变,可分区,里面的元素可以并行计算的集合RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Spa

2021-08-11 23:30:05 659

原创 Spark Streaming

一、简介Spark处理的是批量的数据(离线数据),Spark Streaming实际上是对接的外部数据流之后按照时间切分,批处理一个个切分后的文件,和Spark处理逻辑是相同的。Dstream:Spark Streaming提供了表示连续数据流的、高度抽象的被称为离散流的DStream假如外部数据不断涌入,按照一分钟切片,每个一分钟内部的数据是连续的(连续数据流),而一分钟与一分钟的切片却是相互独立的(离散流)。DStream是Spark Streaming特有的数据类型。Dstream可以看做一

2021-08-11 21:01:12 249

原创 java 中的 final

2021-08-11 06:26:33 44

原创 session 和 cookie

一、区别存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。二、session 的工作原理session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,

2021-08-10 22:47:34 442

原创 HashMap的Put⽅法

1. 根据Key通过哈希算法与与运算得出数组下标2. 如果数组下标位置元素为空,则将key和value封装为Entry对象(JDK1.7中是Entry对象,JDK1.8中是Node对象)并放⼊该位置3. 如果数组下标位置元素不为空,则要分情况讨论3.1. 如果是JDK1.7则先判断是否需要扩容,如果要扩容就进⾏扩容,如果不⽤扩容就⽣成Entry对象,并使⽤头插法添加到当前位置的链表中3.2. 如果是JDK1.8则会先判断当前位置上的Node的类型,看是红⿊树Node,还是链表Node3.2.1

2021-08-10 22:18:41 121

原创 String、StringBuffer、StringBuilder的区别

String是final修饰的,不可变,每次操作都会产生新的String对象StringBuffer和StringBuilder都是在原对象上操作StringBuffer是线程安全的,StringBuilder线程不安全的StringBuffer方法都是synchronized修饰的性能:StringBuilder > StringBuffer > String场景:经常需要改变字符串内容时使用后面两个优先使用StringBuilder,多线程使用共享变量时使用StringBuffe

2021-08-10 22:06:17 38

原创 GC如何判断对象可以被回收

1.引用计数法:每个对象有一个引用计数属性,新增一个引用的时候计数加1,引用释放时计数减1,当计数为0的时候就可以回收2.可达性分析法:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GCRoots 没有任何引用链相连时,则证明此对象是不可用的,那么虚拟机就判断是可回收对象。但是这样会存在一个问题:引用计数法,可能会出现A 引用了 B,B 又引用了 A,这时候就算他们都不再使用了,但因为相互引用 计数器=1 ,那这两个对象就都永远无法被回收。解决:只靠强引用计数

2021-08-10 22:01:31 1391

原创 JVM中,哪些是共享区,哪些可以作为gc root

1.堆区和⽅法区是所有线程共享的,栈、本地⽅法栈、程序计数器是每个线程独有的2、什么是gc rootJVM在进⾏垃圾回收时,需要找到“垃圾”对象,也就是没有被引⽤的对象,但是直接找“垃圾”对象是⽐较耗时的,所以反过来,先找“⾮垃圾”对象,也就是正常对象,那么就需要从某些“根”开始去找,根据这些“根”的引⽤路径找到正常对象,⽽这些“根”有⼀个特征,就是它只会引⽤其他对象,⽽不会被其他对象引⽤,例如:栈中的本地变量、⽅法区中的静态变量、本地⽅法栈中的变量、正在运⾏的线程等可以作为gc root。

2021-08-10 21:49:13 467

原创 Spark(四) SQL

一、简介Spark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。之前Hive是将hql转换成MapReduce然后放在集群上执行,简化了编写MapReduce的复杂性,但是由于MapReduce执行的效率比较慢,所以产生了SparkSQL,它是将SQL转换成RDD,然后提交到集群执行,效率就会变快。二、DataFrameDataFrame也是一个分布式容器。类似于数据库中的二维表格。但是它又比二维表格多

2021-08-10 18:44:43 122

原创 Spark SQL 练习_用户访问统计

一、数据结构id,date,visitCount二、需求三、实现import org.apache.spark.sql.{Dataset, SparkSession}//写一个样本类。用于创建对象case class User(id:String,date:String,vc:Long)object Test0 { def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession.bu

2021-08-10 11:17:43 534

原创 Spark SQL_项目案例-电影受众分析系统

一、数据结构:users.dat: UserID::Gender::Age::Occupation(职业) ::Zip-code( 邮政编码)movies.dat MovieID::Title::Genres( 题材)ratings.dat UserID::MovieID::Rating::Timestamp二、需求:1、 看过”Lord of the Rings,The(1978) ” 用户年龄和性别分布2、 年龄段在”18-24” 的男性年轻人, 最喜

2021-08-10 11:03:28 922

原创 Spark(三)RDD编程

一、简介RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Spark中,只有遇到action,才会执行RDD的计算(即延迟计算),这样在运行时可以通过管道的方式传输多个转换。...

2021-08-08 23:12:12 661

原创 Spark(二) RDD弹性分布式数据集

一、简介RDD(Resilient Distributed Datasets) ,弹性分布式数据集, 是分布式内存的一个抽象概念。RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建。RDD可以看作是Spark的一个对象,运行于内存中,例如读文件是一个RDD,对文件计算是一个RDD,结果集也是一个RDD ,不同的分片、 数据之间的依赖 、key-value类型的map数据都可以看做RDD。作用:提供了一种高度受限共享内存模型二 、特点

2021-08-08 18:15:38 292

原创 Spark(一)

一、简介Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。二、特点1.高级 API 剥离了对集群本身的关注,Spark 应用开发者可以专注于应用所要做的计算本身。2.Spark 很快,支持交互式计算和复杂算法。(内存计算下,Spark 比 Hadoo

2021-08-07 22:58:45 231

原创 Scala高阶函数练习

将val names = List(“Alice”, “Bob”, “Nick”)集合中首字母为’A’的筛选到新的集合。object Test3 { def main(args: Array[String]): Unit = { val names = List("Alice", "Bob", "Nick") var list: List[String] = names.filter(_.startsWith("A")) list.foreach(v=>println(v

2021-08-07 21:39:30 214

原创 Scala斐波那契数列

object Q28 { def fei(num:Int):Int = { if(num<=2){ return 1 } fei(num-1)+fei(num-2) } def main(args: Array[String]): Unit = { for(i <- 1 to 10) { print(fei(i)+",") } }}

2021-08-07 21:34:44 954

原创 Scala 写一个函数,接受一个整数 n,输出这个整数的所有因子;并在 main 函数中调用此函数

object Q22 { def yinzi(n :Int):Int ={ var count = 0 for (i <- 1 to n){ if(n%i==0){ count +=1 } } count } def main(args: Array[String]): Unit = { print("请输入一个整数: ") var n = StdIn.readInt() println(yin

2021-08-07 21:33:42 930

原创 Scala打印三角形

object Q21 { def pr(i :Int) = { for (n <- 1 to i-1){ for(j <- 1 to i-n){ print(" ") } for (k <- 1 to 2*n-1){ print("*") } println() } } def main(args: Array[String]): Unit = { print("

2021-08-07 21:32:41 1494

原创 Scala求水仙花数

object Q18 { def main(args: Array[String]): Unit = { for(i <- 100 to 999){ var ge = i%100%10 var shi = i/10%10 var bai = i/100 if(ge*ge*ge +shi*shi*shi +bai*bai*bai==i){ println(i) } } }}

2021-08-07 21:31:03 1358

原创 Scala实现:读入一个小于 10 的整数 n,输出它的阶乘 n

object Q15 { def jiec(i: Int):Int ={ if(i<=1){ return 1 } i*jiec(i-1) } def main(args: Array[String]): Unit = { println("请输入一个数字:") var num = StdIn.readInt() println(num+"的阶乘为"+jiec(num)) }}...

2021-08-07 21:30:12 918

Spark_SQL 电影受众分析系统数据

Spark_SQL 电影受众分析系统数据

2021-08-10

Azkaban.zip

azkaban安装文件

2021-07-25

kali2020最新版漏洞扫描工具openvas的使用实验报告

在kali更新完之后的2020.2版本中,在使用openvas的过程中可能出现一系列的问题,需要重新安装,该实验报告中详细截图了使用过程中遇到的问题及该软件的使用方法

2020-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除