自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 SpringBoot源码学习系列——运行流程分析

前文对的实例化流程进行了介绍,完成了基本配置文件的加载及初始化,本文对其run方法进行介绍,看看Spring Boot是如何启动运行的。

2023-04-16 16:23:24 254

原创 SpringBoot源码学习系列——构造流程分析

本文主要介绍了SpringApplication的初始化流程,主要包括web应用类型推断、ApplicationContextInitializer加载及初始化、ApplicationListener加载及初始化、入口类推断。

2023-04-05 11:37:05 519

原创 SpringBoot源码学习系列——自动配置原理(三)

通过前面的文章,我们学习了SpringBoot的自动配置实现过程,其中涉及到条件注解。本文对条件注解进行介绍。

2023-04-02 12:59:16 394

原创 SpringBoot源码学习系列——自动配置原理(二)

本文对SpringBoot自动配置原理进行介绍,详细介绍了自动配置的实现过程

2023-04-02 11:18:14 455

原创 SpringBoot源码学习系列——自动配置原理(一)

本文对SpringBoot自动配置的核心运行原理及@EnableAutoConfiguration注解进行介绍。

2023-03-30 21:24:54 483

原创 快速排序及其改进(基于荷兰国旗问题)

1. 在介绍荷兰国旗问题前,我们先对如下问题进行介绍:给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)。该问题实际是一个划分问题。思路:初始 小于等于区 最后一个元素位置为-1对数组进行遍历,cur与num进行比较,1)cur>num:cur右移2) cur<=nu...

2020-03-06 14:32:10 184

原创 二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数组大小为mn。*1. 可以采用暴力遍历的方法进行查找public class Solution { //暴力遍历,时间复杂度O(mn) public boolean Find(int targ...

2020-03-05 22:58:10 142

原创 Java包(package)机制

Java包(package)机制:包机制是Java中管理类的重要手段,通过包机制可以解决类重名的问题,实现对类的有效管理。包对于类,相当于文件夹对文件的作用。通常是类的第一句非注释性语句。包名:域名倒着写即可,再加上模块名,便于内部管理类。例如京东jd.com的test模块,写为com.jd.test。3.com.gao与com.gao.car包无包含关系,是两个完全独立的包。jav...

2019-03-10 13:48:11 291

原创 构造器、垃圾回收机制、this、static关键字

构造器即构造方法,用于对象的初始化。通过new关键字调用!构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!构造器的方法名必须和类名一致!构造方法的重载(创建不同对象),使用与普通方法重载一致。public clas...

2019-03-09 10:30:40 146

原创 Java虚拟机内存分析:栈、堆、方法区

Java虚拟机的内存可分为三个区域:栈stack、堆heap、方法区method area(方法区实际上也在堆中)。栈的特点:栈描述的是方法执行的内存模型,每个方法被调用时都创建一个栈帧(存储局部变量、操作数、方法出口等);JVM会为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等);栈属于线程私有,不能实现线程间的共享;栈的存储特性“先进后出、后进先出”;栈是...

2019-03-03 18:19:41 509 1

原创 tensorflow(一)数据流图、张量、变量、操作、会话、优化器

一、数据流图tensorflow数据流图是一种声明式编程范式(结构化、抽象化)。数据流图优势:1.并行计算快(可执行队列和拓扑排序);2.分布式计算快;3.预编译优化;4.可移植性好。二、张量张量:表示高维数据的抽象。...

2019-03-02 10:08:50 836

翻译 深度学习综述Yann LeCun

论文作者:Yann LeCun 1,2 , Yoshua Bengio 3 &amp;amp; Geoffrey Hinton 4,5深度学习系统可用于图像识别、电子购物中的商品推、网页搜索等。传统机器学习受限于对原始数据(如图像的像素值)的处理能力,在处理前需要设计特征提取器(子系统),通过子系统将原始数据转化为适用于网络的特征向量(给定表示进行学习)。子系统通常是可以发现或分类输入数据模式的分类器。...

2019-01-31 21:53:35 947 1

翻译 深度学习在智能交通的应用--综述

论文作者:Yuan Wang a , Dongxiang Zhang b, ⁎ , Ying Liu b , Bo Dai b , Loo Hay Lee a1.Introduction智能交通系统(ITS)是由先进的数据通信、信息处理和交通管理技术组成的综合交通管理系统。近年来,深度学习在计算机视觉、速度识别和自然语言处理方面取得的成功使得人们很自然将其应用于ITS。我们将ITS中的应用程序...

2019-01-31 21:47:11 12686 4

原创 Leetcode最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。class Solution: def longest...

2018-12-01 15:15:07 126

原创 Leetcode罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...

2018-11-30 11:16:20 120

原创 Leetcode反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。//用x[::-1]即可实现对x反转class Solut...

2018-11-17 21:50:26 122

原创 Leetcode回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。//将整数切分后...

2018-11-17 21:48:29 173

原创 Python冒泡排序

class BubbleSort: def sort(self, nums): self.nums = nums i = 0 while(i&lt;len(nums)-1): j = 0 while(j&lt;len(nums)-1-i): if(nums[j]&...

2018-11-06 22:48:20 209

原创 Leetcode两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]Python实现:'''遍历每个元素,得到target-nums[i]的结果,依次与数组中的每个元素...

2018-11-01 16:55:32 142

原创 HBase集群配置问题

一、启动时提示,Master is initializing。Region Server无法启动:原因:集群各节点时间不同步造成。集群时间同步具体操作集群时间同步集群时间同步二、HBase成功启动后,运行程序报错,无法加载HBase相关包:修改hadoop-env.sh文件:export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/spark/h...

2018-09-30 11:12:29 224

原创 Spark设计理念与基本架构学习

《深入理解Spark核心思想与源码分析》学习一、Spark模块设计Spark模块包括Spark Core,Spark SQL, Spark Streaming, GraphX, MLlib。其中,Spark Core是Spark的核心功能实现,包括SparkContext的初始化,部署模式,存储体系,计算引擎,任务提交与执行;Spark SQL提供关系型数据库SQL处理能力;Spark S...

2018-09-28 22:22:38 763

原创 Spark Sort-Based Shuffle学习笔记

一、为什么需要Sort-Based Shuffle? 1. Shuffle一般包含两阶段的任务:第一部分,即产生Shuffle数据的阶段(Map阶段,需要实现ShuffleManager中的getWriter方法来写数据(数据通过BlockManager可以写入Memory、Disk、Tachyon等,例如想实现非常快的Shuffle,就可以把数据写入内存中,但是内存不稳定,建议采用MEMORY...

2018-09-16 19:30:40 229

原创 Spark天堂之门笔记

一、Spark天堂之门:SparkContext 1. Spark程序在运行时分为Driver和Executors两部分; 2. Spark程序编写基于SparkContext,具体包含两个方面: Spark编程的核心基础是RDD,第一个RDD一定是由SparkContext创建的; Spark程序的调度优化也是基于SparkContext实现。 3. Spark程序注册时通...

2018-09-12 18:55:02 488

原创 Spark Hash Shuffle笔记

一、Shuffle的含义 Hadoop中,Shuffle产生于Map和Reduce之间。 需要Shuffle的关键原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。 二、Shuffle操作可能面临的问题(运行Task时才会产生Shuffle操作): 数据量可能较大,不同节点间网络传输问题; 数据如何分类,即如何Partition:Hash、Sort、Spark钨丝计划; ...

2018-09-11 17:21:50 170

原创 Scala数组笔记

一、定长数组Scala中定义长度不变的数组,采用如下方法://10个元素的数组,初始化为全0scala&gt; val nums = new Array[Int](10)nums: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//10个元素的字符串数组,初始化为全nullscala&gt; val a = new Array[S...

2018-09-02 17:51:28 218

原创 Scala高级类型笔记

一、单例类型定义类Document,类中方法返回thisscala&amp;gt; class Document{## 标题 ## | def setTitle(title:String) = this | def setAuthor(author:String) = this | }defined class Documentscala&amp;gt; val arti...

2018-09-01 13:56:59 138

原创 Spark Job(物理执行角度)笔记

一、pipeline 即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也有两种方式: 1. f(record),f作用于集合的每一天记录,每次只作用于一条记录; 2. f(records),f一次性作用于集合的全部数据。 Spark中实际采用第一种方式,这是由于: 1. 无需等待,可以最大化使用集群的计算资源; 2. 减少OOM(内存溢出)的发送,因为每次只...

2018-08-31 13:42:23 238

原创 RDD的依赖关系笔记

窄依赖和宽依赖: 窄依赖:每个父RDD的一个Partition最多被子RDD的一个Partition所使用。如map,filter,union操作都会产生窄依赖。 宽依赖:一个父RDD的Partition会被多个子RDD的Partition所使用。如groupByKey,reduceByKey,sortByKey等操作都会产生宽依赖。宽依赖会产生Shuffle操作。 ...

2018-08-30 16:43:26 801

原创 Spark Job(Spark 架构角度)笔记

spark-shell中默认情况下没有任何Job。 默认资源分配方式:在每个Worker上为当前程序分配一个ExecutorBackend进程,且默认情况下最大化的使用Cores和Memory。 在一个Executor中一次性最多能运行多少并发的Task取决于当前Executor能够使用的Cores的数量。 一个Stage中的多个任务具体分配给哪个节点执行主要取决...

2018-08-29 12:07:22 528

原创 HA(高可用)下的Spark集群工作原理,Spark内核架构笔记

HA实战: ZooKeeper中包含的内容:Worker,Driver,Application active级别的Master出错后,ZooKeeper会根据自身选举机制选取standby级别的Master转为active级别。只有从ZooKeeper中获取集群的状态信息,成功恢复集群的所有信息后,standby级别的Master才能转为active级别。 Master的切换不会影响到已...

2018-08-27 14:15:11 606

原创 HBase配置

hbase添加到环境变量中(source生效); 将hdfs-site.xml和core-site.xml拷贝到/hbase/conf/中; 修改hbase-env.sh文件; 修改hbase-site.xml文件; 修改regionservers文件; 启动测试。...

2018-08-24 15:16:12 257

原创 Spark-Shell启动报错:/usr/spark//bin/spark-shell: 行 44: 6983 已杀死

这是由虚拟机分配内存不足而导致的(均为1G),重新设置虚拟机内存(2G)即可。

2018-08-23 12:51:01 3419

原创 RDD持久化、Spark广播、累加器笔记

RDD持久化:操作RDD时如何准确保存结果,cache和persist,checkpoint。 Spark广播:构建算法时,对降低网络传输的数据量,提高内存使用效率,加快程序运行速度很重要。 Spark累加器:全局的指针步减变量,只能增加累加器的内容,Executor中不能读累加器,Driver中可以读累加器。 一、RDD持久化...

2018-08-23 12:49:03 458

原创 RDD操作案例

RDD操作案例 map、flatMap、filter、groupByKey、reduceByKey、join、cogroup join 两个集合基于Key进行内容的连接。import org.apache.spark.SparkConfimport org.apache.spark.SparkContextobject Transformations { def main(arg...

2018-08-23 11:28:42 293

原创 Scala隐式转换和并发编程笔记

一、Scala隐式转换 (一)隐式转换函数//上下文中定义了隐式转换函数scala&amp;amp;amp;gt; class Person(val name:String)defined class Personscala&amp;amp;amp;gt; class Engineer(val name:String, val salary:Double){ | def code = println(&amp;amp;quot;Coding .....

2018-08-21 17:43:25 124

原创 Scala函数式编程笔记

Scala中函数可以不依赖于类、对象、接口单独存在,函数可以作为函数的参数、返回值。scala&amp;gt; def fun1(name:String){println(name)} //定义函数fun1: (name: String)Unitscala&amp;gt; val fun1_v = fun1 _ //将函数赋值给fun1_vfun1_v: String =&amp;gt; Unit = &amp;...

2018-08-20 14:08:14 1594

原创 虚拟机Spark分布式集群搭建,ssh无法连接

虚拟机搭建Spark分布式集群时,ssh服务无法连接问题的解决: 在所有机器运行该命令,清楚MAC信息即可。 rm -f /etc/udev/rules.d/70-persistent-net.rules

2018-08-19 17:39:58 298

原创 Spark RDD学习

一、RDD:基于工作集的应用抽象 无论是基于工作集还是基于数据集,都有这几个特点:位置感知(数据存放位置)、容错、负载均衡。 基于数据流的处理:从物理存储上加载设备,操作数据,再写入物理存储设备,如Hadoop MapReduce。 基于数据流的处理中,每次查询都需要从磁盘读取数据,不能复用曾经的结果或中间计算结果。因此基于数据集的处理不适用于以下场景: 1. 不适用于大量迭代 2. 不...

2018-08-16 14:48:46 230

原创 Scala模式匹配、类型系统笔记

大数据处理首选Scala语言,Java语言在Java8之前无数据处理能力,无函数式编程。一、模式匹配 类似于Java中的switch case,switch case对传入的值进行匹配,而Scala中的模式匹配可对类型、集合等进行匹配,功能更强大。//一个简单的值匹配例子://函数为Unit类型,因为函数返回println()scala&amp;amp;amp;amp;amp;amp;gt; def bigData(data:St...

2018-08-14 15:13:51 825

原创 Scala变量、基本数据类型、基本类型操作笔记

变量 : var 可变变量 val 不可变变量val a = 9 //变量a被赋值为Int=9,不可再改变,val类似于Java中的finalvar b = 9 //可变b = 10 //更改b为10优先使用val Scala中定义变量时必须进行初始化,可使用占位符初始化scala&amp;amp;amp;gt; var s:String=_s: String = nul...

2018-08-13 18:26:42 365

空空如也

空空如也

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

TA关注的人

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