自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 goroutine和channel

2020-08-13 13:37:50 135

原创 ubuntu下发送邮件到外部邮箱

步骤:sudo apt-get install heirloom-mailxsudo /etc/s-nail.rc在nail.rc文件末尾添加一下两行代码:set from=“[email protected]”set smtp=“smtps://smtp.163.com:465”set smtp-auth-user=“[email protected]”set smtp-auth-password=“客户端授权码”set smtp-auth=login客户端授权码需要在邮箱客户端的设置中开启,并获取客户端授权码

2020-07-21 00:15:56 764

原创 已知图片或视频的URL,如何将其下载到本地

使用Python语言编写。# 图片的URLimgUrl = "https://p16-va-tiktok.ibyteimg.com/img/musically-maliva-obj/1645136815763462~c5_100x100.webp"# 图片具体下载到的位置downloadPath = "D://aaaaa/b.jpg"img = requests.get(imgUrl).contentwith open(downloadPath, 'wb') as data_file: da

2020-07-01 18:59:06 1871 5

转载 Netty写的不错的博客

https://blog.csdn.net/u010853261/category_6567026.html

2020-06-08 20:54:41 149

原创 Driver 端长时容错详解

引言之前的详解我们详解了完成 Spark Streamimg 基于 Spark Core 所新增功能的 3 个模块,接下来我们看一看第 4 个模块将如何保障 Spark Streaming 的长时运行 —— 也就是,如何与前 3 个模块结合,保障前 3 个模块的长时运行。通过前 3 个模块的关键类的分析,我们可以知道,保障模块 1 和 2 需要在 driver 端完成,保障模块 3 需要在 e...

2020-05-05 15:09:28 205

原创 Executor 端长时容错详解

引言之前的详解我们详解了完成 Spark Streamimg 基于 Spark Core 所新增功能的 3 个模块,接下来我们看一看第 4 个模块将如何保障 Spark Streaming 的长时运行 —— 也就是,如何与前 3 个模块结合,保障前 3 个模块的长时运行。通过前 3 个模块的关键类的分析,我们可以知道,保障模块 1 和 2 需要在 driver 端完成,保障模块 3 需要在 e...

2020-05-05 15:05:04 200

原创 ReceiverTraker, ReceivedBlockTracker 详解

引言我们在 [Spark Streaming 实现思路与模块概述](0.1 Spark Streaming 实现思路与模块概述.md) 给出了 模块 3:数据产生与导入 的基本工作流程:(1) 由 Receiver 的总指挥 ReceiverTracker 分发多个 job(每个 job 有 1 个 task),到多个 executor 上分别启动 ReceiverSupervisor 实例;...

2020-05-05 11:54:49 430

原创 Receiver, ReceiverSupervisor, BlockGenerator, ReceivedBlockHandler 详解

引言我们在前面 [Spark Streaming 实现思路与模块概述](0.1 Spark Streaming 实现思路与模块概述.md) 中分析过,Spark Streaming 在程序刚开始运行时:(1) 由 Receiver 的总指挥 ReceiverTracker 分发多个 job(每个 job 有 1 个 task),到多个 executor 上分别启动 ReceiverSuperv...

2020-05-05 11:47:55 200

原创 Receiver 分发详解

引言我们前面在 [DStream, DStreamGraph 详解](1.1 DStream, DStreamGraph 详解.md) 讲到,整个 DStreamGraph 是由 output stream 通过 dependency 引用关系,索引到上游 DStream 节点。而递归的追溯到最上游的 InputDStream 节点时,就没有对其它 DStream 节点的依赖了,因为 Input...

2020-05-05 11:40:44 700

原创 JobGenerator 详解

引言前面在 [Spark Streaming 实现思路与模块概述](0.1 Spark Streaming 实现思路与模块概述.md) 和 [DStream 生成 RDD 实例详解](1.2 DStream 生成 RDD 实例详解.md) 里我们分析了 DStream 和 DStreamGraph 具有能够实例化 RDD 和 RDD DAG 的能力,下面我们来看 Spark Streaming ...

2020-05-04 11:19:09 395

原创 JobScheduler, Job, JobSet 详解

引言前面在 [Spark Streaming 实现思路与模块概述](0.1 Spark Streaming 实现思路与模块概述.md) 和 [DStream 生成 RDD 实例详解](1.2 DStream 生成 RDD 实例详解.md) 里我们分析了 DStream 和 DStreamGraph 具有能够实例化 RDD 和 RDD DAG 的能力,下面我们来看 Spark Streaming ...

2020-05-04 11:12:16 476

原创 DStream 生成 RDD 实例详解

引言我们在前面的文章讲过,Spark Streaming 的 模块 1 DAG 静态定义 要解决的问题就是如何把计算逻辑描述为一个 RDD DAG 的“模板”,在后面 Job 动态生成的时候,针对每个 batch,都将根据这个“模板”生成一个 RDD DAG 的实例。在 Spark Streaming 里,这个 RDD “模板”对应的具体的类是 DStream,RDD DAG “模板”对应的具...

2020-05-02 17:02:38 375

原创 DStream, DStreamGraph 详解

引言我们在前面的文章讲过,Spark Streaming 的 模块 1 DAG 静态定义 要解决的问题就是如何把计算逻辑描述为一个 RDD DAG 的“模板”,在后面 Job 动态生成的时候,针对每个 batch,都将根据这个“模板”生成一个 RDD DAG 的实例。在 Spark Streaming 里,这个 RDD “模板”对应的具体的类是 DStream,RDD DAG “模板”对应的具...

2020-05-02 16:43:06 304

原创 Spark Streaming 实现思路与模块概述

Spark Streaming 的整体模块划分:模块 1:DAG 静态定义–静态的RDD DAG模板模块 2:Job 动态生成–动态的工作控制器模块 3:数据产生与导入–原始数据的产生和导入模块 4:长时容错–长时运行任务的保障Spark Streaming 与 Spark Core 的关系可以用下面的经典部件图来表述:在本节,我们先探讨一下基于 Spark Core 的 RDD ...

2020-04-27 17:41:07 202

原创 HBase一些知识提醒

部署架构---->HMaster负责协调工作,负责建表、删表、移动Region、合并操作等。RegionServer是负责做数据存储的,以及客户端的CRUD等都是通过ZooKeeper来与RegionServer交互的。ZooKeeper管理了HBase所有的RegionServer信息,包括具体的数据段存放在哪个RegionServer上。存储架构:一个列或者多个列组成一个行。每个行拥有...

2020-04-21 17:37:10 337

原创 Kafka的一些知识点提醒

消费者消费位移的提交分区管理之优先副本选举、主题的分区重分配、复制限流日志索引–稀疏索引,偏移量索引和时间戳索引,根据偏移量索引或者时间戳索引二分法查找具体的某个消息的位置日志清理之日志删除和日志压缩,日志清理之后的小文件会进行合并日志磁盘存储–页缓存、零拷贝服务端–协议设计、定时任务之时间轮、延时操作、Kafka控制器是管理主题与分区的(包括Leader选举)客户端之消费者的分区重分...

2020-04-10 17:02:20 131

原创 磁盘I/O流程

2020-04-09 08:49:56 602

转载 TCP/IP状态转换图

https://users.cs.northwestern.edu/~agupta/cs340/project2/TCPIP_State_Transition_Diagram.pdf

2020-03-11 19:39:45 272

原创 网络通信相关

2020-03-11 19:33:25 98

原创 Java并发相关的一些知识提醒

JDK8中的ConcurrentHashMap采用了CAS的方式来保证同步阻塞队列的实现原理,如上图。

2020-03-06 12:22:04 87

原创 Java中连续创建多个Map/List/Thread等

1、连续创建多个名称不同的Map

2019-08-11 09:38:48 1857

原创 JVM之Java内存模型与线程

1、由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写了。2、基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也为计算机系统带来更高...

2019-07-19 19:55:29 127

原创 JVM字节码执行引擎之方法调用

1、方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,Class文件编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于之前的直接引用)。2、解析。所有方法调用中的目标方法在C...

2019-07-18 10:59:14 124

原创 JVM字节码执行引擎之运行时栈帧结构

1、执行引擎是Java虚拟机最核心的组成部分之一。虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现,因此可以自行制定指令集与执行引擎的体系结构,并且能够执行那些不被硬件直接支持的指令集格式。2、在Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,这个概念模型成为各种虚拟...

2019-07-17 11:07:08 250

原创 类加载器

1、虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码模块称为“类加载器”。2、类与类加载器。...

2019-07-15 15:26:09 81

原创 虚拟机类加载时机与类加载过程

编译器将Java代码编译为Class文件,在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这些是下面要记录的内容。1、虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。...

2019-07-14 20:11:07 104

原创 Class类文件的结构

1、"与平台无关"最终实现在操作系统的应用层:Sun公司及许多虚拟机公司发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现程序的一次编写到处执行。各种不同平台的虚拟机与所有平台都统一使用的程序存储格式—字节码(ByteCode)是构成平台无关性的基石。...

2019-07-11 18:19:58 136

原创 Java内存区域

1、1、程序计数器。在JVM中是一块较小的内存空间,可以看作是当前线程执行的字节码的行号指示器。字节码解释器工作时就是通过改变计数器的值来选取下一条需要执行的字节码指令。2、Java虚拟机栈。线程私有,它的生命周期和线程相同。每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈...

2019-07-09 17:49:07 71

原创 后台数据的分页处理

1、当从数据库得到查询结果,然后从前台得到pagesize和pageindex时,如何对数据做分页?将得到的数据集按照pagesize为步长做循环,将每一次的循环结果存入List,然后再按pagesize和pageindex做一一对应,存入Map中,然后再根据前台传过来的pageindex做判断是请求的是哪页的数据,最后返回给前台。# 分页数据 pageIndex = 0 for result...

2019-07-09 17:48:51 1811

原创 JVM垃圾收集算法

1、判断对象是否存活。1.1、引用计数法:给对象添加一个引用计数器,每当对象有引用计数器就加一,引用失效计数器就减一。任何时刻计数器为0的对象就是不能再被使用的对象,即要回收的对象。引用计数法的缺点是不能解决对象之间相互循环引用的问题。1.2、可达性分析算法。通过一系列称为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索走过的路径成为引用链,当一个对象到GC Roots没有任...

2019-07-09 17:48:34 68

原创 JVM垃圾收集器

1、HotSpot的算法实现。1.1、枚举根节点。如果虚拟机要全局进行检查引用,会消耗大量的时间。可达性分析进行时还要进行GC停顿。可达性分析必须要保证 在一致性的快照中进行,一致性是指在整个分析期间整个执行系统看起来就像被冻结在某个时间节点上,不可以出现分析过程中对象引用还在不断的发生变化的情况。这点是导致GC进行时必须停顿所有的Java执行线程(Stop The World)。当所有线程都停...

2019-07-09 17:48:09 82

原创 JVM内存分配与回收策略

1、对象优先在Eden分配。大多数情况下,对象在新生代的Eden区分配。当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor GC。1.1、新生代GC(Minor GC):指发生在新生代的垃圾收集动作,因为Java对象大多都具有朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快。1.2、老年代GC(Full GC):指发生在老年代的GC,出现了Major GC,经常...

2019-07-09 17:47:38 150

原创 scrapy爬虫的一些小问题

1、在进行多级页面递进爬取时,可以在settings.py中设置DEPTH_LIMIT = 100,后边的数值是可允许的请求深度,0为不受限制。2、在使用scrapy进行延时下载时,可以在settings.py中设置DOWNLOAD_DELAY = 2,后边的数值是延时时间。...

2019-06-06 15:24:52 110

原创 scrapy 爬虫方法

1、使用多级递进形式爬取,使用xpath2、使用异步形式的,响应的是json数据,直接解析json,查看浏览器开发者工具的NetWork下的XHR。

2019-06-06 15:03:19 79

原创 scrapy 爬取不在同一级页面的属性

在进行scrapy爬虫时,要爬取不在同一级页面的属性,使用yield scrapy.Request(url=videolink, meta={'item':item}, callback=self.parseReal2)来进行item的传递,这样就可以爬取不在同一级页面的属性,并yield给最后的item了。 def parseReal(self, response): ...

2019-06-06 14:58:02 290

原创 Hadoop Configuration 详解

1、Hadoop使用了一套独有的配置文件管理系统,并提供自己的API,即使用org.apache.hadoop.conf.Configuration处理配置信息。2、Hadoop配置文件采用XML格式,在Configuration中每个属性都是String类型的,但值类型可能是多种类型的。3、使用Configuration过程:构造Configuration对象,并通过addResource(...

2019-05-19 21:20:45 5911

收藏的技术知识链接.html

自己收藏的技术链接 html

2019-08-11

Hadoop技术内幕 深入解析YARN架构设计与实现原理.pdf

这是一本关于Hadoop源码解析的书籍,这本书从源码的角度讲解了Hadoop底层到底是如何工作的,这对我们学习和理解Hadoop有一个很好的帮助。

2019-07-10

Java 并发编程实战.pdf

这本书是Java并发编程中比较经典的一本书籍,对于Java系的开发者来说应该是一本非常不错的书籍,对提升能力非常有帮助!

2019-07-10

空空如也

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

TA关注的人

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