自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小本科生成长之路

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(110)
  • 资源 (5)
  • 收藏
  • 关注

转载 一致性算法Raft详解

原文出处:http://www.solinx.co/archives/415?utm_source=tuicool&utm_medium=referral一致性算法Raft详解背景  熟悉或了解分布性系统的开发者都知道一致性算法的重要性,Paxos一致性算法从90年提出到现在已经有二十几年了,而Paxos流程太过于繁杂实现起来也比较复杂,可能也是以为过于复杂

2017-06-21 20:05:25 14286 1

原创 Java设计模式学习01——单例模式

Java单例模式是一种常见且较为简单的设计模式。单例模式,顾名思义一个类仅能有一个实例,并且向整个系统提供这一个实例。 单例模式的特点:单例类仅能有一个实例。单例类必须为自己创建实例。单例类必须向外界提供获取实例的方法。 以下是几种实现方法一、懒汉式单例(能够延时加载)public class SingleTon { private static Single

2017-04-15 10:31:32 2816

原创 Spark应用运行流程

相关基本术语-------------------------Application:应用,即用户需要完成的应用程序。一般来说,这部分代码需要用户根据自己的需求来完成。这部分代码主要包括两部分:Driver和Executor。Driver:顾名思义,驱动者,为Application准备运行环境,驱动并监控Application的运行。Worker:当SparkContext申请到资

2017-04-10 22:06:14 4272

原创 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao'问题

昨天通过Spring+springmvc+hibernate搭一个简易的页面,遇到如下问题:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of resource dependencies failed; nested exce

2017-04-03 12:03:14 2981

原创 HDFS文件读取、写入过程详解

HDFS架构--------------------------   运行在廉价的硬件之上的、成本较低的、访问大型数据集、具有容错的特性、容错机制。HDFS是master/slaves架构,由一个名称节点以及多个数据节点构成。namenode负责namespace管理以及client的访问。内部文件被切块存储在数据节点的集合中。 NameNode(元数据节点):存放元数据(名称空间、副

2017-03-29 21:05:42 8941 3

原创 Spark Streaming 简介

批量计算与流计算-----------------------------   数据总体上可以分为静态数据和流数据。对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量计算和实时计算。批量计算以“静态数据”为对象,可以在很充裕的时间内对海量数据进行批量处理,计算得到有价值的信息。Hadoop就是典型的批处理模型,由HDFS和HBase(底层依旧是HDFS)存放大量的静态数据

2017-03-29 09:57:22 1874 1

原创 apache storm简介与原理

简介----------------------------   Storm是一个分布式的、高容错的实时计算系统。   Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供了Map和Reduce原语,使我们对数据进行批处理变的非常的简单和优美。同样,Storm也对数据的实时计算提供了简单Spout和Bolt原语。Storm适用的场景:

2017-03-20 11:28:25 5671 1

原创 HBase简单使用

增删改查------------------------------------名称命令表达式创建表create '表名称', '列名称1','列名称2','列名称N'添加记录      put '表名称', '行名称', '列名称:', '值'查看记录g

2017-03-13 22:11:02 1360

原创 HBase简介

Hbase简介----------------------------------HBase– Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群,海量数据的快速随机访问。 上图描述了Hadoop EcoSystem中的各层系统,其中HBase位

2017-03-13 22:08:48 3337 1

原创 Apache Avro简介与操作

本文根据Apache Avro官方文档所写,http://avro.apache.org/docs/current/index.html.一、Avro简介avro是一个数据序列化系统 提供了:丰富的数据结构紧凑的,快速的,二进制的数据格式一种文件格式,用于存储持久化数据远程过程调用系统(RPC)和动态语言的简单交互。并不需要为数据文件读写产生代码,也不需要使用或实现RPC协议。代码生成是

2017-03-08 15:32:47 4113

转载 Hadoop机架感知配置

文章装载自http://blog.csdn.net/l1028386804/article/details/519351691.背景      Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份。这样如果本地数据损坏,节点可以从同一机架内的相邻节点拿到数据,速度肯定比从跨机架节点上拿

2017-02-22 16:40:32 1294

原创 Windows下安装hadoop-eclipse-plugin插件

一、简介由于经常在windows环境下的eclipse写Hadoop的Java代码,而每次开发的mapreduce都需要打成jar包,然后放到linux系统进行调试。通过window下面的eclipse插件,可以直接在windows下面调试mapreduce的方法,十分便利。二、插件安装步骤1.下载hadoop-eclipse-plugin-2.7.3.jar(由于我的Hadoop版本是2.7.3,

2017-02-17 22:31:39 4868

原创 hadoop完全分布式下datanode无法开启解决方法

一、问题描述当我多次格式化文件系统时,如root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format会出现datanode无法启动,查看日志,发现错误为:2016-12-20 20:39:46,501 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: j

2017-01-04 11:00:42 2679

转载 深入理解Hadoop集群与网络

本文侧重于Hadoop集群的体系结构和方法,以及Hadoop与网络和服务器基础设施之间的关系。Hadoop集群部署时有三个角色:Client machines, Master nodes和Slave nodes。Master nodes负责Hadoop的两个关键功能:数据存储(HDFS);以及运行在数据之上的并行计算(又称为Map-Reduce)。N

2016-12-29 21:04:00 1553 1

原创 Java设计模式20-备忘录模式

一、场景当我们使用文本编译器记录一些内容时,发现这一步写错了,往往可以使用Ctrl+Z的方式会退到上一个状态,其中运用到的知识就是备忘录模式。二、定义备忘录模式,即保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。三、模式结构发起者角色(Originator):负责创建一个备忘录用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。备忘录角色(Memento):负责存储O

2016-12-02 10:34:47 3255 3

原创 Java设计模式19——观察者模式

一、定义观察者模式定义了一个一对多的依赖关系,让多个观察者对象同时监听同一个主题对象。当这个主题状态发生改变时,会通知所有观察者对象,让它们自动更新自己。二、类似场景聊天室程序的创建。服务器创建好后,A、B、C三个客户端连接好公开聊天。A向服务器发送数据,服务器在将数据分别发送给其他在线客户。也就是说,每个客户端需要更新服务器端的数据。网站上,很多人订阅了“Java主题”的新闻。当有这个主题新闻

2016-11-20 18:37:00 2310 1

原创 Java设计模式18——状态模式

一、定义状态(State)模式又称为状态对象模式(Pattern of Objects for State),状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变时改变其行为,用于解决系统中复杂对象的状态装换以及不同状态下行为的封装问题。状态和行为:   所谓对象的状态,通常指的就是对象实例的属性的值;而行为指的就是对象的功能,再具体点说,行为大多可以对应到方法上。  状态模式的功能就是

2016-11-16 19:46:08 22802 8

转载 Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析

原文出处:http://blog.csdn.net/amazing7/article/details/514240381、Handler的由来   当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread)来负责处理与UI相关的事件,我们叫做UI线程。  Android的UI操作并不是线程安全的(出于性能优化考虑),意味着如果多个线程并发操作UI线程,...

2016-11-15 22:26:21 1563 1

原创 Java设计模式17——模板方法模式

一、介绍模板方法模式是编程中经常用到的模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。二、场景举例当一个客户到银行办理业务时,有以下流程:1.取号排队2.办理具体现金/转账/企业/理财业务3.给银行工作人员评分这时办理业务的一个标准流程,其中一三步是确定的,而第二步往往并不确定只有等到到窗口办理业务时

2016-11-15 18:20:22 2128 1

原创 Java回调机制简单讲解

今天刚好学了一下设计模式中的观察者模式,其中涉及到了回调的相关内容,以前也经常用到回调函数,今天稍微总结一下相关内容。回调所谓回调:简单来说就是,A对象调用了自己的方法a,方法a接收的参数是B接口的实例b,而在方法a中将执行接口B中的方法c。这样解释可能有点绕不过来,下面我们来看一个例子: 比如宿舍的某个同学设置了一个闹铃,闹铃响时全宿舍的人都能听到,但是张三比较勤奋,听到铃声后起床了,李四比较懒

2016-11-14 22:57:51 1805 1

原创 JVM学习06——类加载器

一、类加载器  虚拟机设计团队把类加载过程中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。二、类与类加载器   类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远远不限于类加载阶段。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Jav

2016-11-14 19:44:37 624

原创 Java设计模式16——策略模式

一、定义  策略(strategy)模式属于对象的行为模式。其用途是针对一组算法,将每个不同算法封装到具有共同接口的独立类中,从而使他们可以相互替换。即使 算法和对象分开来,使得算法可以独立于使用它的客户而变化。二、场景某个市场人员接到单后的报价策略。报价策略很复杂,可以简单作如下分类:普通客户小批量,不打折普通客户大 批量,打9折老 客户小批量,打8.5折老 客户大批量,打8折 我们通常

2016-11-14 08:30:27 5116 5

原创 Java设计模式15——命令模式

一、介绍命令模式:将一个请求封装为对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称为:动作(Action)模式、事务(transaction)模式。二、模式结构Command抽象命令类: 声明执行操作的接口。ConcreteComand具体命令类:通常持有 一个接收者对象并绑定于一个动作, 调用接收者相应的操作,以实现execute方法。I

2016-11-12 21:49:58 713

转载 Java虚拟机学习 - 类加载过程

原文出处:http://blog.csdn.net/java2000_wl/article/details/8040633类加载机制:   JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验证(Verification)、准备

2016-11-12 09:42:07 768

原创 Java设计模式14——中介者(Mediator)模式

一、定义用一个中介对象封装一系列对象的交互,中介者是多个对象不需要显示的相互作用,而且可以独立的改变他们的交互。二、举例通过上述定义可能不好理解,下面举一个例子,假如在一个没有总经理的公司中,有三个部门:财务部、市场部、研发部。那么财务部负责发工资,需要和市场部及研发部都通气;市场部负责接新项目,需要研发部处理技术、需要财务部出资金;虽然只有三个部门,但关系非常乱,就像下图: 但是实际上,公司都有

2016-11-11 21:06:27 11658 4

原创 Java设计模式13——迭代器模式

一、场景对于学习了Java的同学来说,“迭代”这个词并不会陌生,我们经常使用Iterator接口对Collection下的集合类进行遍历,常见代码:Iterator iterator=list.iterator();while(iterator.hasNext()){//进行遍历}这便是很好的迭代器模式应用例子。我们可以在不暴露集合类的内部结构情况下,通过迭代器让外部客户端透明的访问其内部的数

2016-11-09 19:15:34 894

原创 Java设计模式12——责任链模式

一、定义  将能够处理同一类请求的对象连成一条链,所提交的请求将沿着这条链传递,链上的对象逐个判断是否有能力处理该请求,如果有则处理,如果没有则将请求传递给下一个对象处理。二、场景举例1.生活中场景 在学校时,请假条的审批过程:如果请假小于3天,辅导员直接批准。如果请假大于等于3天小于10天,需院长审批。如果请假大于等于10天小于30天,校长审批。请假被拒绝2.开发中场景   Java

2016-11-07 20:07:33 988

原创 Java设计模式11——享元模式

一、适用场景  内存属于稀缺资源,不能随意浪费。如果在一个系统中有很多个完全相同或相似的对象,我们就可以使用享元模式,让他们共享一份内存即可,不必每个都去实例化对象,从而节省内存空间。二、模式核心享元模式以共享的方式高效的支持大量细粒度对象的重用。享元对象能做到共享的关键是区分了内部状态和外部状态。 内部状态:可以共享,不会随环境改变而改变。外部状态:不可以共享,会随环境改变而改变。围棋例

2016-11-06 14:58:56 24437 5

原创 JVM学习05——内存分配与回收

对象的内存分配从大方向上将,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB(转换后援缓冲器)上分配。少数情况也可能直接分配在老年代中,分配规则不固定,取决于当前垃圾收集器组合及虚拟机内存相关参数。    -XX:+PrintGCDetail 打印内存回收日志1.对象优先在Eden区

2016-11-06 09:24:35 8728 4

转载 Java设计模式10——外观模式

外观模式是最简单的设计模式之一,所以我就不再去重写了,简单的总结转载看到的一篇文章,原文链接:http://blog.csdn.net/jason0539/article/details/22775311一、定义外观模式(也称为门面模式)定义了一个高层接口,为子系统中的一组接口提供了一个一致的界面,从而使得这一组子系统更加容易使用。 这个模式很好的遵循了迪米特法则(最少知识法则),即一个软件应当尽

2016-11-05 21:09:44 1250

原创 Java设计模式学习09——装饰模式

一、定义装饰(Decorate)模式又称为包装(Wrapper)模式。装饰模式是以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。二、职责动态的为一个对象增加新的功能。装饰模式是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。三、装饰模式结构装饰模式类图:Component抽象构件角色:真实对

2016-11-03 19:11:02 3902 5

原创 JVM学习04——垃圾收集器

如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。这里讨论的收集器基于JDK 1.7Update 14之后的HotSpot虚拟机。如图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明他们可搭配使用。1.Serial收集器   Serial收集器是一个单线程的新生代垃圾收集器,使用复制收集算法。它的“单线程”是指,它在进行垃圾收集时必须停止其他所有的工作线程

2016-11-02 22:32:24 730 1

原创 Java设计模式学习08——组合模式

一、组合模式适用场景把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式对部分对象和整体对象进行管理。二、组合模式结构抽象构件(Conponent)角色:所有类的共有接口,定义了叶子和容器的共同点。叶子(Leaf)构件角色:在组合中表示叶子结点对象,叶子节点无子节点。容器(Composite)构件角色:有容器特征,可以 用来存储子节点,在Component接口中实现与子节点有关操

2016-11-02 19:44:52 31646 3

原创 Java设计模式学习07——桥接模式

一、场景商城系统中常见的商品分类,以电脑为例,如何良好的处理商品分类销售的问题?我们可以用多层继承实现下图的关系:实现代码如下:public interface Computer { void sale();}class Desktop implements Computer{ @Override public void sale() { System.o

2016-11-01 20:03:31 1330 1

原创 JVM学习03——垃圾收集算法

一、判断对象是否存活1.引用计数算法   个对象添加一个引用计数器,当有一个地方应用它时计数器加1;当引用失效时,计数器减1;任何时刻计数器为0的对象不可能再被使用。 缺点:循环引用的场景下无法实现回收,例如下面的图中,ObjectC和ObjectB相互引用,那么ObjectA即便释放了对ObjectC、ObjectB的引用,也无法回收。HotSpot在实现GC时未采用这种方式。 2. 可达性分

2016-10-30 16:21:51 763

原创 Java设计模式学习06——静态代理与动态代理

一、代理模式为某个对象提供一个代理,从而控制这个代理的访问。代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代。代理类负责请求的预处理、过滤、将请求分配给委托类处理、以及委托类处理完请求的后续处理。二、代理模式结构UML类图:由上图代理模式的结构为:抽象角色: 真实对象和代理对象的共同接口。代理角色: 代理对象角色内部含有对真实对象的引用,从而可以操作真

2016-10-30 09:57:18 42941 3

原创 Java几种线程池类型介绍及使用

一、线程池使用场景单个任务处理时间短将需处理的任务数量大二、使用Java线程池好处1.使用new Thread()创建线程的弊端:每次通过new Thread()创建对象性能不佳。线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。缺乏更多功能,如定时执行、定期执行、线程中断。2.使用Java线程池的好处:重用存在的线程,减少对象创建、消亡的开

2016-10-29 09:54:17 18376 3

原创 Java设计模式学习05——适配器模式

之前讲的几种模式都是创建型模式,现在开始讲结构型模式。何为结构型模式?结构型模式的 核心作用, 是从程序结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。一、适配器模式定义适配器模式,把一个类接口变化成客户端所期待的另一个类的接口,使原来因接口不匹配而无法一起工作的类能够一起工作。二、适配器模式举例1.生活中例子: 用电器做例子,一个电器的插头只有两相,而有些地方的电源插座却只有三相。

2016-10-27 18:55:24 1390 5

原创 Java设计模式学习04——原型模式

原型模式  当我们需要构建一个与已经存在对象相似时,再通过new去产生一个新对象需要非常繁琐的数据准备或访问权限,而这时就可以用到原型模式,原型模式实现就是Java中的克隆技术,以某个对象为原型,复制出新的对象,显然新的对象具备原型对象相同的特点。原型模式优点是,效率高,可以直接复制,避免了重新执行构造方法过程步骤。   原型模式中的复制类似于new,但不同于new。new创建新的对象属性采用的是

2016-10-26 10:38:21 1283 1

原创 Java设计模式学习03——建造者模式

一、场景 当需要生产一辆汽车时,我们需要为其装配发动机、轮胎、座椅等等部件,这个装配过程是比较复杂的而且也需要较高的组装技术。而建造者模式(Builder Pattern)就是为了将部件与组装分离开。二、 概念   将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。  与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指

2016-10-25 16:24:42 13699 9

jackson-core-asl-1.9.13.jar和 jackson-mapper-asl-1.9.13.jar

jackson-core-asl-1.9.13.jar和 jackson-mapper-asl-1.9.13.jar

2017-03-08

jackson-core-asl-1.9.13.jar

jackson-core-asl-1.9.13.jar

2017-03-08

二叉树的java实现

二叉树的java实现

2016-07-14

Android Studio仿Uber登陆界面

Android Studio仿Uber登陆界面

2016-04-10

Android studio的Uber登录界面

Android studio的Uber登录界面

2016-04-04

空空如也

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

TA关注的人

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