自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的编程世界

热爱新技术,给创意插上翅膀

  • 博客(70)
  • 资源 (14)
  • 收藏
  • 关注

原创 MapReduce的shuffle原理

1.shuffle简图2.shuffle细节图分区用到了分区器,默认分区器是HashPartitioner源码:public class HashPartitioner<K2, V2> implements Partitioner<K2, V2> { public void configure(JobConf job) {} /** U...

2020-01-04 13:18:13 308

原创 HDFS的DataNode源码分析

1.大致流程DataNode.main() // 入口函数    |——secureMain(args, null);      |——createDataNode(args, null, resources); // 创建DataNode        |——instantiateDataNode(args, conf, resources);       ...

2019-12-28 14:36:08 406

原创 HDFS的NameNode源码分析

1.大致流程NameNode.main() // 入口函数     |——createNameNode(); // 通过new NameNode()进行实例化       |——initialize(); // 方法进行初始化操作         |——startHttpServer(); // 启动HttpServer         |——loadNamesyste...

2019-12-28 12:21:35 454

原创 HDFS文件压缩和小文件治理

1.文件压缩文件压缩好处: 减少数据所占用的磁盘空间 加快数据在磁盘、网络上的IO Hadoop的压缩实现类;均实现CompressionCodec接口压缩格式 对应的编码/解码器 DEFLATE org.apache.hadoop.io.compress.DefaultCodec gzip org.apache.hadoop.io.compr...

2019-12-28 12:10:42 732

原创 HDFS高可用与联邦机制

1.HDFS高可用 对于HDFS ,NN存储元数据在内存中,并负责管理文件系统的命名空间和客户端对HDFS的读写请求。但是,如果只存在一个NN,一旦发生“单点故障”,会使整个系统失效。 虽然有个SNN,但是它并不是NN的热备份 因为SNN无法提供“热备份”功能,在NN故障时,无法立即切换到SNN对外提供服务,即HDFS处于停服状态。 HDFS2.x采用了HA...

2019-12-28 11:57:04 803

原创 HDFS读写流程

1.写流程详细流程: 创建文件: HDFS客户端向HDFS写数据,先调用DistributedFileSystem.create()方法,在HDFS创建新的空文件 RPC(ClientProtocol.create())远程过程调用NameNode(NameNodeRpcServer)的create(),首先在HDFS目录树指定路径添加新文件 ...

2019-12-28 11:51:30 715 2

原创 HDFS的简单介绍及核心概念

1、HDFS是什么?HDFS是Hadoop生态圈的一个存储子模块,是一个分布式文件存储系统。 文件系统:操作系统中负责管理和存储文件信息的软件。具体地说,它负责为用户创建文件,存入、读出、修改、转储、删除文件等 分布式文件系统:当文件大小超出一台计算机的存储能力时,就有必要将它拆分成若干部分,然后分散到不同的计算机中存储,管理网络中跨多台计算机存储的文件系统称之...

2019-12-26 14:21:25 823

原创 Spring AOP框架体系小结

一、这里先列举一些AOP基本概念,后面提到再作相应解释1)目标对象 target2)代理对象 proxy3)切点 pointcut4)增强 advice5)切面 advisor6)织入器:将增强逻辑嵌入到目标对象的切点位置上从而生成代理对象的工具,相当于连接目标对象和代理对象的桥梁二、说到框架体系,就要从底层慢慢往上做抽象,那就先从设计模式和实现机制讲起:S

2017-12-22 12:39:43 782

原创 Spring的IoC容器实现

1.BeanFactory基础类型IoC容器,提供完整的IoC服务支持。如果没有特殊指定,默认采用延时初始化策略。只有当客户端对象需要访问访问容器中的某个依赖对象时,才对该依赖对象进行初始化以及依赖注入操作。所以相对来说,容器启动初期速度较快,所需资源有限。对于资源有限,并且功能要求不是很严格的场景,BeanFactory是比较适合的容器选择。2.Application

2017-11-13 17:52:14 689

原创 初识springboot

1.1、SpringBoot简介    在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!    Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来

2017-11-08 13:27:22 465

原创 RESTful架构简介

什么是RESTful架构,总结起来就是三点: (1)每一个URI代表一种资源; (2)客户端和服务器之间,传递这种资源的某种表现层; (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

2017-07-25 17:12:30 554

原创 记录一些常见的Linux命令

本地目录A,压缩成a.zip假设我在当前 /usr/local,其中有个A目录,则执行zip -q -r a.zip A上传到linux /user/local/t/a.zip,假设远程LinuxIP为:192.168.1.100,则执行scp a.zip [email protected]:/user/local/t,然后输入登录密码解压a.zip,假设

2017-07-19 09:15:13 571

原创 初识golang

最近几天闲着无聊,老大给推荐了一门新的语言golang(对于我来说),看了一些介绍,也写了几个小demo,马上爱上了这门语言,凭着一股“生命不止,折腾不息”的极客精神,也写个小博客,发表一些个人见解。本人主语言Java,如果说比较,那就拿Java和golang做个比较,比较的目的不是要引发诸如“php是世界上最好的语言”这种无意义的语言之争,而是对语言的应用场景有个

2017-06-25 09:33:20 2806

原创 springmvc框架原理流程图

第一步:发起请求到前端控制器(DispatcherServlet)第二步:前端控制器请求HandlerMapping查找 Handler可以根据xml配置、注解进行查找第三步:处理器映射器HandlerMapping向前端控制器返回Handler第四步:前端控制器调用处理器适配器去执行Handler第五步:处理器适配器去执行Handler第六步:Handler执行完成给适配

2017-06-08 05:44:22 1846

原创 Mybatis开发流程简介

mybatis是什么?mybatis是一人持久层框架,mybatis是一个不完全的ORM框架。sql语句需要程序员自己去编写,但是mybatis也有映射(输入参数映射、输出结果映射)。mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便,适用与需求变化较多项目,比如互联网项目。mybatis框架执行过程:

2017-06-02 11:15:23 4081

原创 JavaWeb中的监听器和过滤器

1.监听器为了能够在Servlet/JSP应用程序中进行事件驱动编程,Servlet API提供了一整事件类和监听器接口。监听器有三个级别:ServletContext、HttpSession、HttpServletRequest,其对应的监听器接口如下图:让监听器生效也很简单,只要实现上述相应的接口中的方法即可,并用@WebListener标注

2017-05-30 13:46:58 869

原创 JavaWeb开发中的Session管理

Session管理是Web应用程序开发中一个非常重要的主题,这是因为Web语言HTTP是无状态的。在默认情况下,Web服务器不知道一个HTTP请求时来自初次用户,还是来自之前访问过的用户。例如,webmail应用程序要求用户在查看邮件之前要先登录。但是,一旦用户输入正确的用户名和密码,用户在访问应用程序的其他部分时,就不应该提示他们再次登录。应用程序需要记住哪些用户

2017-05-29 18:50:43 7531

转载 log4j的基本配置文件

log4j.rootLogger=INFO,CONSOLE,Rlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=${catalina.home}/logs/rfidtest.log log4j.appender.R.MaxFileSize=10MBlog4j.appende

2017-05-14 13:10:49 494

原创 常见负载均衡算法的简介

负载均衡算法的种类很多,常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法。1.轮询法轮询很容易理解,将请求按顺序轮流分配到后端服务器上,它均衡地对待后端每一台服务器,而不关心服务器的实际连接数和当前的系统负载。使用轮询策略的目的在于做到请求转移的绝对均衡,但付出的性能代价是相当大的。2.随机法通过系统随机函数,根据后

2017-05-12 21:18:32 759

原创 面向对象的设计原则和生产者消费者代码举例

有人说这个世界上只有两种人:生产者和消费者。要么你生产某种东西,要么你消费某种别人生产的东西。当然,你也可能是既是生产者又是消费者,即在某一产品上你是生产者,在另一产品上又是消费者。但在某个特定的产品上,一个人只能是生产者或者消费者,而不能二者同时具有。当然,在一个具体的产品上,你可能既不是生产者又不是消费者。但对于任何特定的产品,它一定存在至少一个生产者和一个消费者。

2017-05-12 10:35:53 822

原创 你真的了解Java中的interrupt()中断线程吗?

很多Java初级开发者(包括我)都知道终止一个正在运行的线程最好的方法不是用JDK已废弃的stop()方法,而是用interrupt()或条件变量,但事实上真就那么简单吗?很多东西一旦涉及到多线程,问题就复杂起来,你必须考虑很多问题。今天我们就好好聊聊Java中的一个interrupt()中断线程方法,同时涉及到了很多其他问题(都是坑啊,一不小心就进去了)。中断可以理解为线程的一个标志

2017-05-11 12:47:49 1093

原创 Java分布式开发中的RPC

最近在努力学关于Java分布式开发的内容,推荐大家一本书,陈康贤的《大型分布式网站架构设计与实践》,文后有资源链接。RPC,远程过程调用,是实现分布式计算的基础。它有两种实现方式:1.基于TCP协议的RPC;2.基于HTTP协议的RPC;其中涉及到的关键技术是对象的序列化和反序列化,一个简单的RPC过程包括一个服务消费者和服务提供者,服务消费者需要使用服务提供者的提供的服务,就

2017-05-10 17:16:19 1078

原创 ThreadLocal的底层实现原理与应用场景

维持线程封闭性的一种规范方法是使用ThreadLocal。它提供了set和get等访问方法,这些方法为每个使用该变量的线程都存有一份独立的副本,因此get方法总是返回由当前执行线程在调用set时设置的最新值。那么,我们就看看关于这两个方法的JDK源码: public void set(T value) { Thread t = Thread.currentThread();

2017-04-22 14:14:51 8340 2

原创 Java中String、StringBuffer、StringBuilder的联系和区别

虽然网上有很多关于它们三者的解析,也都解释的很好,但我也想根据我的个人理解谈谈Java中String、StringBuffer、StringBuilder的联系和区别。可能有误,望请指正。首先,它们都是final类的,也就是不可被继承,关于final的用法,我的上一篇博文也提了,这里不再过多论述。在做一些字符串操作的时候,它们三者的执行速度为:String在线程安全性方面,前两者是

2017-04-22 09:35:30 459

原创 Java编程思想之final关键字的深入解析

最近一直在准备面试,对新的知识的学习也慢了下来,主要是巩固Java基础知识。今天看了String、StringBuffer、StringBuilder,被其中的一些概念搞的晕头转向,比如什么可变类、不可变类、线程安全、线程不安全,看了网上的一些解释,都觉得不太满意,只能查阅专业的书籍,大名鼎鼎的《Java编程思想》。   以前刚入门Java的时候,也听过《Java编程思想》,可以说是Java编

2017-04-21 21:28:45 829 2

原创 Java中BIO、NIO和AIO的区别和应用场景

最近一直在准备面试,为了使自己的Java水平更上一个档次,拜读了李林峰老师的《Netty权威指南》,了解了Java关于IO的发展和最新的技术,真是受益匪浅,现在把我总结的关于BIO、NIO和AIO的区别和应用场景概述一遍。在此之前,先弄清几个概念:1.同步:使用同步IO时,Java自己处理IO读写。2.异步:使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传

2017-04-21 19:37:31 28504 5

转载 MyISAM和InnoDB的区别

MyISAM和InnoDB是两种不同的存储引擎,下面介绍它们两者的区别和应用场景。MyISAM和InnoDB的区别MyISAM是非事务安全型的,而InnoDB是事务安全型的。MyISAM锁的粒度是表级,而InnoDB支持行级锁定。MyISAM支持全文索引,而Innodb不支持全文索引MyISAM表是保存成文件形式的,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。Inno

2017-04-09 12:11:31 771

原创 TCP协议如何保证可靠传输

我把上面三幅图的内容总结下:1.TCP发送端按序发送,接收端按序接收;2.接收端回复确认,发送端设置超时未收到确认重传的机制;3.发送端发送数据时附有校验和,接收端接收数据后计算校验和并与发送来的校验和比对,若有差错,则丢弃报文且不回复确认;4.TCP流量控制机制:TCP连接时互相通知对方各自固定大小的缓冲空间,故接收一方只允许另一方发送不超过缓冲区大小的数据。

2017-04-03 16:38:29 849

转载 equals()方法和hashCode()方法的区别与联系

今天阿里面试问到了这个问题,虽然以前也知道,但是跟人家解释不清,说起来思路也比较乱,现在好好的总结,一定要把概念理透。总结:1、equals方法用于比较对象的内容是否相等(覆盖以后)2、hashcode方法只有在集合中用到3、当覆盖了equals方法时,比较对象是否相等将通过覆盖后的equals方法进行比较(判断对象的内容是否相等)。4、将对象放入到集合中时,首先判断要

2017-04-01 18:23:08 2105

原创 Java常见面试题:线程的生命周期

2017-03-12 16:29:06 1555

转载 sleep和wait的区别

1、这两个方法来自不同的类分别是,sleep来自Thread类,而wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。sleep不出让

2017-03-12 10:25:26 404

原创 Hibernate入门

1.搭建hibernate环境第一步:如图,项目中导入Hibernate5所需jar包(可到我的资源处下载)下载地址:http://download.csdn.net/download/qq_24693837/9754261第二步:创建实体类public class User { private int uid; private String username; pr

2017-03-03 15:36:56 372

原创 初识Mybatis框架

Mybatis是一个基于Java的持久层框架MyBatis的优缺点优点:  1、简单易学       mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。  2、灵活       mybatis不会对应用程序

2017-02-26 20:09:09 582

原创 初始Hibernate框架

JavaEE三层结构1 web层:struts2框架2 service层:spring框架3 dao层:hibernate框架什么是hibernate框架?1 hibernate框架应用在javaee三层结构中dao层框架2 在dao层里面做对数据库crud操作,使用hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对

2017-02-14 15:04:14 332

原创 Spring中AOP操作的相关术语

Joinpoint(连接点):类里面可以被增强的方法,这些方法称为连接点 Pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义. Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能) Aspect(切面):是切入点和通知

2017-02-07 15:00:55 1696

原创 Spring中的AOP底层实现原理

Spring中的AOP底层实现原理:动态代理。动态代理,照我的理解就是,在不修改原有类对象方法的源代码基础上,通过代理对象实现原有类对象方法的增强,也就是拓展原有类对象的功能。

2017-02-07 14:37:35 19215 1

原创 Spring中的AOP概念

1 aop:面向切面(方面)编程,扩展功能不修改源代码实现 2  AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码 3 aop底层使用动态代理实现(1)第一种情况,有接口情况,使用动态代理创建接口实现类代理对象(2)第二种情况,没有接口情况,使用动态代理创建类的子类代理对象画图分析原理

2017-02-07 14:29:41 722

原创 java中OOP的概念之我见

OOP,面向对象编程,照我的理解就是把现实社会中的各类事物通过抽取它们的共同特性映射到计算机模型当中的类,这些类有它们各有的数据结构,也就是属性,以及它们各有的功能,也就是方法,再通过创建对象,完成各类对象之间的数据交互。它的最终目的是实现代码复用,它的三大特性是封装,继承,和多态。

2017-02-07 14:16:09 3230

原创 浅析SpringIOC底层原理

1 把对象的创建交给spring进行管理 2 ioc操作两部分:(1)ioc的配置文件方式(2)ioc的注解方式3ioc底层原理使用技术(1)xml配置文件(2)dom4j解析xml(3)工厂设计模式(4)反射4画图分析ioc实现原理

2017-02-04 17:36:09 15788 4

原创 Spring概念之我见

1 spring是开源的轻量级框架 2 spring核心主要两部分:(1)aop:面向切面编程,扩展功能不是修改源代码实现(2)ioc:控制反转,- 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象- 把对象的创建不是通过new方式实现,而是交给spring配置创建类对象 

2017-02-04 17:20:10 459

Hibernate5所需jar包

一共14个Hibernate5所需jar包,下载后解压,再导入到项目中即可使用,亲测可用,方便java开发者进行数据库的操作,更多关于Hibernate开发的细节可移步至我的技术博客:http://blog.csdn.net/qq_24693837?viewmode=contents

2017-02-14

韩顺平php全套笔记.doc

最经典的韩顺平php笔记,基础加实战,业内专家带你走向php网站编程。

2016-09-19

Linux宝典.pdf

学习linux的电子书,入门,进阶,提高,开源linux发展越来越火爆,做系统开发的不得不了解linux。

2016-09-19

基于OpenCV的python颜色提取

采用python2.7和opencv2.4.8做的再摄像头动态获取黄颜色的物体,可用于颜色检测和物体跟踪,采用颜色空间转换从BGR到HSV色系,参考示例代码和HSV颜色阈值可轻松获得任意的颜色提取。

2016-09-18

Android开发权威指南

学安卓开发必备宝典,一本书带你轻松入门,书中涵盖android开发的基础知识和进阶内容。

2016-09-18

编译原理(龙书第2版).pdf

经典中的经典,你值得拥有

2016-09-17

TCP-IP详解(卷一、二、三).pdf

学网络学开发必看经典。

2016-09-16

高性能PHP应用开发.pdf

PHP网站架构技术,帮您建设高性能网站

2016-09-04

大话STM32.pdf

学习stm32推荐书籍,帮你轻松进入stm32的世界

2016-09-04

空空如也

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

TA关注的人

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