自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wintershii的博客

越努力,越幸运

  • 博客(117)
  • 收藏
  • 关注

原创 Zookeeper简介

Zookeeper简介Zookeeper是一个开源的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态。根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效,功能稳定的系统提供给用户。分布式应用程序可基于Zookeeper实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知,集群管理,Master选举,分布式锁和分布式队列等功能客户端的读请求可以被集群中的...

2020-03-02 21:16:56 350

转载 ElasticSearch简介

ElasticSearch简介Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索实时分析的分布式搜索引擎可以扩展到上百台服务...

2020-03-02 14:50:49 283

原创 Hadoop简介

Hadoop简介1.概念Hadoop是一套大数据解决方案. 它提供了一套分布式系统基础架构. 核心内容包含HDFS和MapReduce, 在Hadoop2.0以后引入YARN简单来讲, HDFS是供数据存储的, MapReduce是方便数据计算的, YARN是负责资源调度的HDFS对应namenode和DataNode. NameNode负责保存元数据的基本信息, Datanode直接存...

2020-03-02 00:11:21 364

原创 Spark知识点总结

Spark知识点总结1.Spark基本架构Cluster Manager : Spark的集群管理器, 主要负责对整个集群资源的分配与管理. Cluster Manager分配的资源属于一级资源, 它将各个Worker上的内存, CPU分配给Application, 但不负责对Executor的资源分配. 在standalone模式下即为Master主节点, 控制整个集群, 监控Worke...

2020-02-29 20:24:42 610

转载 Spark内存模型

Spark内存模型Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),...

2020-02-04 16:02:18 1558

原创 计算广告基础概念

基础名次ctr: 广告点击率cvr: 广告转化率bid: 出价cpm: cost per mile, 千次成本(展示)cpc: cost per click, 点击成本cpa: cost per action, 转化成本出价方式OCPC: 广告主按转化出价, 平台按点击收费.好处:1.广告主无作弊动机,广告主&平台利益统一2.流量的高效售卖3.探索成本由广告主承担...

2020-02-04 11:32:43 903

原创 Spark SQL函数小结

1.开窗函数1. row_number() over()示例: row_number() OVER (PARTITION BY category ORDER BY revenue DESC) rank作用: 给每个分组的数据,按照排序顺序,打上分组内的行号(分组topN)2. sum、max、min、count、avg等聚合函数示例:sum(pv) over(partition by...

2020-02-04 11:22:40 893

转载 机器学习笔记-回归(Regression)

Regression:Output a scalar。Regression可以用于预测股票市场、无人驾驶、推荐系统,这里的例子是可以预测宝可梦的CP值Step 1:Model所谓的Model就是a set of function。在这个例子中,我们可以把function写成y=b+w⋅xcp,因为b跟w可以带入各种值,所以function有无穷多个。这个model我们称之为Linear m...

2020-02-04 11:05:54 587

转载 机器学习简介(Introduction of Machine Learning)

1.What is Machine LearningMachine Learning ≈ Looking for a Function From Data机器学习三步骤2.Learning MapRegression(回归):The output of the target function f is “scalar”.(e.g.预测PM2.5进行天气预报)Classificati...

2020-02-04 10:37:00 376

原创 java.lang.Thread

java.lang.Thread位于java.lang包下的Thread是非常重要的线程类,它实现了Runnable接口。本篇文章围绕Thread具体介绍一下Java线程的概念和Thread类中常用的方法1.线程的状态线程从创建到最终的消亡, 要经历若干个状态。一般来说,线程包括以下几个状态:创建(new), 可运行(runnable), 阻塞(blocked), time waiting,...

2019-10-16 19:15:54 1400

原创 IO模型

IO模型1.概念IO有内存IO, 网络IO和磁盘IO三种, 通常我们说的是后两者阻塞和非阻塞, 指的是函数/方法的实现方式, 即在数据就绪之前是立刻返回还是等待, 即发起IO请求是否会被阻塞以文件IO为例, 一个IO读过程是文件数据从磁盘 —> 内核缓冲区 —> 用户内存的过程. 同步和异步的区别主要在于数据从内核缓冲区 —> 用户内存这个过程 需不需要用户进程等待, ...

2019-09-20 20:45:11 212

原创 Java并发—Executor框架

Executor框架在Java中, 使用线程来异步执行任务. Java线程的创建与销毁需要一定的开销, 如果我们为每一个任务创建一个新线程来执行, 这些线程的创建与销毁将消耗大量的计算资源. 同时, 为每一个任务创建一个新线程来执行, 这种策略可能会使处于高负荷的应用最终崩溃.1.Executor框架简介1>Executor框架的两级调度模型在HotSpot VM的线程模型中, Ja...

2019-09-07 18:28:29 204

原创 Java并发—线程池

线程池Java中线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池.在开发过程中, 合理使用线程池能够带来三个好处 :1.降低资源消耗. 通过重复利用已创建的线程降低线程创建和销毁造成的消耗2.提高响应速度.当任务到达时, 任务可以不需要等待线程创建就能立即执行3.提高线程的可管理性. 线程是稀缺资源, 如果无限制地创建, 不仅会消耗系统资源, 还会降低...

2019-09-04 18:41:38 169

原创 Redis数据结构(六) —压缩列表

压缩列表压缩列表是列表键和哈希键的底层实现之一, 当一个列表键只包含少量列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么Redis就会使用压缩列表来做列表键的底层实现. 另外, 当一个哈希键只包含少量键值对, 并且每个键值对的键和值要么就是小整数值, 要么就是长度比较短的字符串, 那么Redis就会使用压缩列表来做哈希键的底层实现1.压缩列表的构成压缩列表是Re...

2019-09-03 19:36:20 133

原创 Java并发—ConcurrentHashMap

Java并发容器—ConcurrentHashMap1.JDK1.7版本​ jdk1.7的实现结构图如下所示[外链图片转存失败(img-Fy93gKVd-1566009849146)(/home/shidongxuan/.config/Typora/typora-user-images/1566002052129.png)]CurrentHashMap是由Segment数组和HashEnt...

2019-08-17 10:44:25 164

原创 Java并发—锁

Java中的锁1.Lock接口锁是用来控制多个线程访问共享资源的方式, 一般来说, 一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源, 比如读写锁). 在Lock接口出现之前, Java程序是靠synchronized关键字来实现锁功能的, 它提供了和synchronized关键字类似的同步功能, 只是在使用时需要显示的获取和释放锁. 虽然它缺少了隐式获取释...

2019-08-15 09:00:39 261

原创 Java集合源码—HashMap

HashMap源码分析1.概述HashMap是一种基于哈希算法的散列查找集合.其实现方式主要是数组+链表. 其存储键值对, 并根据键的哈希值作运算进行键值对的存储和查询. 当一个键的hash值与另一个键的hash值做运算后得到的在数组中位置相同, 这就说明出现了"哈希冲突", 所以采用链表, 将他们链成一条链表. 当这个链表长度过长时, 就会将该链表转化为红黑树提高性能而HashMap的内部...

2019-08-09 15:51:03 166

原创 Spring知识点总结

SpringSpring是一个java企业级应用开源开发框架. Spring主要用来开发Java应用, 有些扩展是针对构建J2EE平台的web应用. spring框架目标是简化Java企业级应用开发,提供全面的企业应用开发一站式的解决方案.特点 :轻量 : Spring是轻量的控制反转 : Spring通过控制反转实现了松散耦合, 对象给出他们的依赖, 而不是创建或查找以来的对象们面向...

2019-08-08 19:16:55 286

原创 操作系统—CPU调度与内存管理

CPU调度与内存管理1.CPU调度算法1>先来先服务调度算法 (FCFS):就是按照各个作业进入系统的自然次序来调度作业. 这种调度算法的优点是实现简单, 公平. 其缺点是没有考虑到系统中各种资源的综合使用情况, 往往使短作业的用户不满意, 因为短作业等待处理的时间可能比实际运行时间长得多2>短作业优先调度算法 (SPF) :就是优先调度并处理短作业, 所谓短是指作业的运行时...

2019-08-08 19:06:46 3171

原创 排序算法—八大排序

八大排序算法1.冒泡排序冒泡排序是一种交换排序, 就是两两比较待排序的元素, 若次序不满足要求则交换, 知道整个数组有序基本思想 : 每次找到最大或最小值, 然后放到首位或最后一位对于长度为n 的数组, 因为只需要找到n-1个数的位置, 最后一个就已经确定了. 所以我们外部循环需要从0 ~ n-2. 内部循环从 n-1到 i+1, 内部循环每次将最大值或最小值推到i的位置(即选出第i小或第...

2019-08-06 16:53:19 187

原创 操作系统—进程线程

操作系统—进程线程1.进程和线程的区别进程是系统进行资源分配和调度一个独立单位, 最小的资源管理单位.线程是进程的一个实体, 是CPU调度和分派的基本单位, 它是比进程更小的能独立运行的基本单位, 最小的CPU执行单元主要区别 : 进程之间有不同的代码和数据空间, 而多个线程则共享数据空间, 每个线程有自己的执行栈和程序计数器为其执行上下文.地址空间和其他资源 : 进程间相...

2019-08-06 16:50:31 157

原创 Redis—持久化

Redis持久化Redis是一个键值对数据库服务器, 并且是一个内存数据库, 它将自己的数据库状态储存在内存里面, 如果不想办法将数据库状态保存在磁盘里面, 那么一旦进程退出, 服务器中的数据库状态也会消失不见1.RDB持久化RDB持久化功能可以将Redis在内存中的数据库状态保存到磁盘里面, 避免数据意外丢失RDB持久化功能既可以手动执行, 也可以根据服务器配置选项定期执行, 该功能可以...

2019-08-06 16:45:35 106

原创 Redis—数据库

Redis数据库1.服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中, db数组的每个项都是一个redis.h/redisDb结构, 每个redisDb结构代表一个数据库在初始化服务器时, 程序会根据服务器状态的dbnum属性来决定应该创建多少个数据库struct redisServer { //... /...

2019-08-03 11:54:56 107

原创 Java集合源码—LinkedList

LinkedList源码分析1.LinkedList概述LinkedList底层是一个双链表(非循环), 是一个直线型的链表结构因为实现方式是链表, 所以在插入或删除时的效率较高, 但是因为其内存空间并不一定连续, 遍历时需要从头到尾访问一遍, 所以查找的效率并不是很高public class LinkedList<E> extends AbstractSequen...

2019-08-03 11:54:01 107

原创 Redis—五大对象

Redis五大对象在前面我们学习了Redis中的数据结构, 但是Redis并没有直接使用这些数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统. 这个系统包括了字符串对象, 列表对象, 哈希对象, 集合对象和有序集合对象这五中类型的对象, 每种对象都至少对应了至少一种前面的数据结构通过这五种不同类型的对象, Redis可以在执行命令前, 根据对象的类型来判断一个对象是否可以...

2019-08-02 16:29:47 372

原创 计算机网络—HTTP

HTTP协议1.HTTP简介HTTP–Hyper Text Transfer Protocol,超文本传输协议,是一种建立在TCP上的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事...

2019-08-01 21:46:57 169

原创 计算机网络—DNS协议

DNS协议1.DNS定义DNS(Domain Name System)是"域名系统"的英文缩写, 是一种组织成域层次结构的计算机和网络服务命名系统. 其实就是将我们常用的域名转化为IP地址,供我们访问2.DNS体系架构[外链图片转存失败(img-17aoi1GF-1564667046063)(/home/shidongxuan/.config/Typora/typora-user-imag...

2019-08-01 21:44:24 267

原创 InnoDB事务

InnoDB事务1.事务概述事务是数据库区别于文件系统的重要特征之一. 事务会把数据库从一种一致状态转换为另一种一致状态. 数据库提交工作时, 可以确保要么所有修改都已经保存了, 要么所有修改都不保存InnoDB存储引擎中的事务完全符合ACID的特性, ACID是以下四个词的缩写 :原子性 : 原子性是指整个数据库事务是不可分割的工作单位. 只有事务中所有的数据库操作都执行成功,才算整个...

2019-08-01 21:43:19 423

原创 Java集合源码—ArrayList

ArrayList源码分析1.ArrayList概述ArrayList是Java中常用的集合之一, 其底层实现是数组.因为数组在内存空间中是连续的, 所以他的特点就是查找数据快, 但因为插入和删除元素都需要移动其他元素的位置, 所以插入和删除会慢一些. 另外, ArrayList是可以动态增长和缩减的索引序列.public class ArrayList<E> extends A...

2019-08-01 19:37:32 129

原创 InnoDB锁

InnoDB锁锁是数据库系统区别于文件系统的一个关键特性, 锁机制用于**管理对共享资源的并发访问.**InnoDB存储引擎会在行级别上对表数据上锁, 也会在数据库其他地方使用锁, 从而允许对多种不同资源提供并发访问. 例如, LRU列表, 删除, 添加, 移动LRU列表中的元素, 为了保证一致性, 必须有锁的介入. 数据库系统使用锁是为了支持对共享资源进行并发访问, 提供数据的完整性和一致性...

2019-07-31 20:15:13 146

原创 InnoDB索引

1.InnoDB存储引擎索引概述InnoDB存储引擎支持以下几种常见的索引 :B+树索引全文索引哈希索引InnoDB存储引擎支持的哈希索引是自适应的, InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引, 不能人为干预是否在一张表里生成哈希索引.B+树索引就是传统意义上的索引, 这是目前关系型数据库系统中最常用和最有效的索引. B+树索引的构造类似于二叉树, 根据键值(Ke...

2019-07-31 20:14:08 383

原创 JVM—Java锁优化

1.自旋锁与自适应旋锁之前提到的互斥同步对性能最大的影响是阻塞的实现, 挂起线程和恢复线程的操作都需要转入内核态中完成, 这些操作给系统的并发性能带来了很大的压力. 但是,很多时候共享数据的锁定只会持续很短的时间,为了这段时间去挂起和恢复线程不值得.如果物理机有一个以上的CPU,能让两个或两个以上的线程同时并行执行, 我们就可以让后面请求锁的那个线程"稍等一下",但不放弃处理器的执行时间, 看看...

2019-07-30 15:47:45 134

原创 JVM—Java线程与锁

JVM—Java线程与锁1.线程的实现线程是比进程更轻量级的调度执行单位, 线程的引入, 可以把一个进程的资源调度和执行调度分开, 各个线程既可以共享进程资源(内存地址文件I/O等), 又可以独立调度(线程是CPU调度的独立单位)线层的实现方式主要有三种 : 使用内核线程实现, 使用用户线程实现和使用用户线程加轻量级进程混合实现1> 使用内核线程实现内核线程就是直接由操作系统内核...

2019-07-30 15:46:54 116

原创 JVM—Java内存模型

JVM—Java内存模型并发处理的广泛应用是使得Amdahl定律代替摩尔定律 成为计算机性能发展源动力的根本原因, 也是人类"压榨"计算机运算能力的最有利武器由于计算机的运算速度与它的存储和通信子系统差距太大, 大量的时间都花费在磁盘I/O,网络通信或者数据库访问上, 如果不希望处理器在大部分时间里都处于等待其他资源的状态, 让计算机同时处理几项任务是非常有效的"压榨’'手段1.Java...

2019-07-30 15:46:11 119 1

原创 JVM—虚拟机字节码执行引擎

执行引擎是Java虚拟机最为核心的组成部分之一. 虚拟机是一个相对于物理机的概念, 两种及其都有代码执行能力, 其区别是物理机的执行引擎是直接建立在处理器, 硬件, 指令集和操作系统层面上的, 而虚拟机的执行引擎则是由自己实现的, 因此可以自行指定指令集与执行引擎的结构体系, 并且能够执行哪些不被硬件直接支持的指令集格式1.运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机进行方法调...

2019-07-30 15:36:07 116

原创 JVM—虚拟机类加载机制

JVM—虚拟机类加载机制虚拟机把描述类的数据从Class文件加载到内存, 并对数据进行校验, 转换解析和初始化 , 最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制与那些编译时需要进行连接工作的语言不同, 在Java语言中, 类型的加载,连接和初始化过程都是在程序运行期间完成的, 这种策略虽然会令类加载时稍微增加一些性能开销, 但是会为Java应用程序提供高度灵活性1.类...

2019-07-30 15:35:21 97

原创 JVM—类文件结构

1.Class类文件的结构任何一个Class文件都对应着唯一一个类或接口的定义信息.Class文件是一组以8位字节为单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符.根据Java虚拟机规范的规定,Class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型: 无符号数和表,后面的解析都要以这两种数据类型为基础.无符号...

2019-07-27 22:11:58 70

原创 计算机网络—传输层

传输层在TCP/IP协议栈, 传输层有两个协议TCP和UDP. 传输层为相互通信的应用程序提供了逻辑通信TCP(Transmission Control Protocol) : 需要将要传输的文件分段传输, 需要建立会话, 能够实现可靠传输. 有流量控制功能UDP(User Data Protocol;) : 用户报文协议, 一个数据包就能完成数据通信, 不需要建立会话, 不需要流量控制....

2019-07-27 21:54:07 208

原创 计算机网络—网络层

网络层1.网络层的功能网络层负责在不同网络之间转发数据包, 基于数据包的IP地址转发. 如果数据丢失,不负责丢失重传, 也不负责顺序处理. 路由器就工作在网络层数据包在互联网中传送时, 在物理层中有各种不同的介质. 因为既有局域网的广播传输, 又有广域网的点对点传输. 所以在局域网使用CSMA/CD协议, 在路由器间使用PPP协议2.网络设备和OSI参考模型间的关系计算机通信过程发送...

2019-07-27 21:48:47 192

原创 计算机网络—数据链路层

数据链路层1.数据发送模型数据链路层使用的信道主要有两种类型 :点对点信道 : 使用一对一点对点的通信方式广播信道 : 使用一对多的广播通信方式,因此过程比较复杂链路 : 点到点的物理路段数据链路 : 除了物理线路 , 还有通信协议来控制这些数据的传输数据链路层传输的是帧. 网络层的IP数据包在到达数据链路层时,加上了帧头,物理层地址,校验值和帧尾.变成了一个数据帧. 在物理层...

2019-07-27 21:47:28 241

空空如也

空空如也

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

TA关注的人

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