- 博客(61)
- 资源 (23)
- 问答 (1)
- 收藏
- 关注
原创 JVM相关小结
对JVM中分层模型、垃圾回收期、垃圾回收算法趁着周末小结一下。有不对的地方,还请指正和讨论~ 1.JVM内存模型 2.JVM垃圾回收期 3.JVM垃圾回收算法 ---------------------------------------------------------------------------
2017-09-17 19:44:16 341
原创 Tachyon框架的Worker心跳及Master高可用性分析
0 概述 分布式框架中的Master-Slave类型,Slave节点负责工作的具体执行,Master负责任务的分发或者相关元数据的存储等。一般情况下,一个Master节点都会对应多个Slave节点,Master在分配任务时需要知道当前有哪些Slave节点是可以接受自己所发的命令的(Slave节点有可能因为各种原因挂掉),因此需要在其内部维持一个链表来保存所有还活着的Slave节点。H
2014-09-23 23:04:47 1385
原创 Yarn中的几种状态机
1 概述 为了增大并发性,Yarn采用事件驱动的并发模型,将各种处理逻辑抽象成事件和调度器,将事件的处理过程用状态机表示。什么是状态机? 如果一个对象,其构成为若干个状态,以及触发这些状态发生相互转移的事件,那么此对象称之为状态机。 处理请求作为某种事件发送到系统中,由一个中央调度器传递给对应的事件调度器,进而对事件进行处理,处理完成之后再次发送给中央调度
2014-08-05 21:58:55 4258
原创 Spark on Yarn遇到的几个问题
1 概述 Spark的on Yarn模式,其资源分配是交给Yarn的ResourceManager来进行管理的,但是目前的Spark版本,Application日志的查看,只能通过Yarn的yarn logs命令实现。 在部署和运行Spark Application的过程中,如果不注意一些小的细节,也许会导致一些问题的出现。2 防火墙 部署好Spark
2014-08-04 13:21:09 4456
原创 Spark1.0.x入门指南(spark on yarn, standalone)
1 节点说明 IPRole192.168.1.111ActiveNameNode192.168.1.112StandbyNameNode,Master,Worker192.168.1.113DataNode,Master,Worker192.168
2014-07-16 21:38:00 9480
原创 Mapreduce执行过程分析(基于Hadoop2.4)——(三)
4.4 Reduce类4.4.1 Reduce介绍整完了Map,接下来就是Reduce了。YarnChild.main()—>ReduceTask.run()。ReduceTask.run方法开始和MapTask类似,包括initialize()初始化,根据情况看是否调用runJobCleanupTask(),runTaskCleanupTask()等。之后进入正式的工作,主要有这
2014-07-10 23:05:13 1483
原创 Mapreduce执行过程分析(基于Hadoop2.4)——(二)
4.3 Map类 创建Map类和map函数,map函数是org.apache.hadoop.mapreduce.Mapper类中的定义的,当处理每一个键值对的时候,都要调用一次map方法,用户需要覆写此方法。此外还有setup方法和cleanup方法。map方法是当map任务开始运行的时候调用一次,cleanup方法是整个map任务结束的时候运行一次。4.3.1 Map介绍
2014-07-10 23:04:07 1739
原创 Mapreduce执行过程分析(基于Hadoop2.4)——(一)
1 概述该瞅瞅MapReduce的内部运行原理了,以前只知道个皮毛,再不搞搞,不然怎么死的都不晓得。下文会以2.4版本中的WordCount这个经典例子作为分析的切入点,一步步来看里面到底是个什么情况。2 为什么要使用MapReduceMap/Reduce,是一种模式,适合解决并行计算的问题,比如TopN、贝叶斯分类等。注意,是并行计算,而非迭代计算,像涉及到层次聚类的问题就不
2014-07-10 23:03:03 1520
原创 HttpClient实现文件的上传下载
1 HTTP HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。 虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 用来提供高效的、最新的、功能丰富
2014-06-30 21:10:27 1526
原创 Hadoop2.3+Hive0.12集群部署
0 机器说明IPRole192.168.1.106NameNode、DataNode、NodeManager、ResourceManager192.168.1.107SecondaryNameNode、NodeManager、DataNode192.168.1.108
2014-03-20 23:58:13 2385
原创 win7的centos虚拟机上搭建mysql5.6服务
1 安装包下载mysql5.6下载地址:http://dev.mysql.com/downloads/mysql/这里选择linux版本:navicat11破解版的下载地址:http://download.csdn.net/detail/can007/69714752 mysql的安装从官网下载的rpm64位的安装包:
2014-02-27 23:06:19 1267 1
原创 Redis学习
1 概述 目前多数的NoSql数据库本质上都是键值对形式,Redis也不例外。作为缓存数据库的一种,和Memcached相比,有以下几种主要的优点:(1)速度上,Redis要比Memcached快,这是基于一些Benchmarks的测试结果得出的,而且在内存使用上,Redis突破了物理内存限制,可以使用虚拟内存;(2)数据类型比Memcached要多,Redis支持L
2014-02-24 22:11:13 2656 2
原创 ArrayList、LinkedList、HashMap的遍历及遍历过程中增删元素
ArrayList、LinkedList、HashMap是Java中常用到的几种集合类型,遍历它们是时常遇到的情况。当然还有一些变态的时候,那就是在遍历的过程中动态增加或者删除其中的元素。 下面的例子就是可以实现动态遍历ArrayList、LinkedList、HashMap。 1 import java.util.ArrayList; 2 import java.ut
2014-02-21 22:59:09 3093
原创 STS中搭建SpringMVC工程
1 环境说明 首次接触Spring,面对这么一个优秀的框架,先从环境搞起,再慢慢学。开发环境选择Spring Tool Suite,得专业点不是?Maven选2.2.1,JDK还是1.6,Tomcat采用7。下面一步步来…2 STS安装 Spring Tool Suite是免费的一款基于Eclipse的Spring开发的定制版IDE,其官方下载地址为:htt
2014-01-11 22:39:23 1724 1
原创 字符串匹配算法之Sunday算法
字符串匹配查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情况下均具有线性的查找时间。但是在实用上,KMP算法并不比最简单的C库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍(未亲身实践)。但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法Sunday算法。 Su
2013-12-29 00:31:43 2338 1
原创 设计模式之观察者模式
1 概述 观察者模式(Observer Patern),定义了对象间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。其目的就是为了对象间的解耦。 这个模式的角色有以下几种:(1)抽象主题(Subject)角色:它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有多个观察者,抽象主题提供一个接口,可以增加和删除观察者对象;
2013-12-27 00:02:46 2340 6
原创 设计模式之模板模式
1 概述 模板模式(Template Patern),是在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法中使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板就是一个方法,这个方法将算法定义成一组步骤,为了不被子类改变,这个方法通常被限制为final类型。另外还有一个钩子(hook)的概念,所谓的“钩子”就是默认不做事的方法,这个方
2013-12-25 23:06:23 1070
原创 设计模式之策略模式
1 概述 策略模式(Strategy Patern),是把针对同一件事情的不同的算法分别封装起来,并且相互之间可以替换。这种模式的使用需要以下三种角色:(1)环境角色:应用不同的策略来达到完成某件事情的目的;(2)抽象策略角色:通常由接口或者抽象类实现,所有的具体角色都继承此抽象;(3)具体策略角色:具体的算法实现;2 示例 相对来说,例子还
2013-12-22 21:26:59 1112
原创 设计模式之享元模式
1 概述 享元模式(Flyweight):享,就是共享;元,就是元数据。简单来说,这个模式就是将系统中的对象公用,不用创建很多对象造成JVM拥塞。类似于平常用到的数据库连接池。 把一个对象的状态分成两部分,变与不变。通过共享不变的部分,变化的状态通过参数传入,达到减少对象数量的目的。享元模式通常结合工厂模式一起实现,具体怎么做呢?最常见的例子就是Java中的字符串常量。
2013-12-21 00:17:16 1117
原创 设计模式之组合模式
1 概述 组合模式(Composite),将对象组合成树形结构来表现“整体&部分”这一层次结构。这种模式能让客户以一致的方式处理个别对象以及对象组合。 组合内的所有对象都必须实现相同的接口,当组合结构复杂,遍历的成本太高时,就有必要实现组合节点的缓存。组合的优点是可以让客户端不再区分操作的是组合对象还是叶子对象,而是以一种统一的方式来操作。 组合模式的组成
2013-12-12 23:25:50 1094
原创 设计模式之桥接模式
1 概述 桥接模式(Bridge),是把抽象和具体的实现分离开,使得二者可以独立扩展,不会影响到对方。当需要不同的方式去改变接口和实现时,就能体现出桥接模式的功效。2 示例 直接这么说,显得有点不太好理解。Bridge就是桥,用于连接抽象和具体实现,过了桥,就该干嘛干嘛,两不相干。 依然以手机为例,手机浏览到好看的网页或者听到好听的歌曲、好看的视频等都
2013-12-10 22:06:27 879
原创 设计模式之外观模式
1 概述 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。这样可以避免客户端和子系统之间的紧耦合。 这种模式需要将一系列的子系统组合到外观中,然后将具体的工作交给各个子系统去完成。如此一来,可以简化接口的调用。 其本质就是将系统与客户端交互的地方封装起来。2 示例 这个模式,总体来说,很简单,理解起来也不困难。 依然以手机为例
2013-12-09 21:03:01 904
原创 设计模式之代理模式
1 概述 代理模式(Proxy)就是为一个对象创建一个替身,用来控制对当前对象的访问。目的就是为了在不直接操作对象的前提下对对象进行访问。 根据代理类和被代理类的关系来区分的话,可以分为静态代理和动态代理。(1)静态代理:在运行之前,就确定好代理类、被代理类之间的关系。(2)动态代理:在运行时动态的创建一个代理类,实现一个或多个接口,将方法的调用转发到指
2013-11-27 22:35:04 980
原创 设计模式之适配器模式
1 概述 适配器模式(Adapter),说白了就是为了挂羊头卖狗肉而专门设计的模式。也就是把一个类的接口变换成客户端所期待的另一种接口。 适配器模式通过定义一个新的接口(对要实现的功能加以抽象),和一个实现该接口的Adapter(适配器)类来透明地调用外部组件。这样替换外部组件时,最多只要修改几个Adapter类就可以了,其他源代码都不会受到影响。 还是以手机为
2013-11-23 23:03:02 1006
原创 设计模式之装饰者模式
1 概述 装饰模式(Decorator),就是可以动态的给对象增加新的功能,它要求装饰者对象和被装饰者对象有着相同的抽象父类或者接口。 当然,也可以写一个新的类来继承旧的类,在新的类中增加方法或者重写父类中的方法以此来达到扩展功能的目的,但是这样做的话,依然在编译的时候就定死了这个新的子类及其对象。想要动态的达到这一目的,就得使用这个模式了。 装饰者模式有以下几个要点
2013-11-23 12:39:50 909
原创 设计模式之原型模式
1 概述原型模式(Prototype model)被用在频繁调用且极其相似的对象上,在已指定对象的基础上,然后通过拷贝这些原型对象创建新的对象。 Prototype类需要具备以下两个条件:(1)实现Cloneable接口。在Java语言有一个Cloneable接口,它的目的是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。只有实现了这个接口的类才可
2013-11-21 22:14:20 963
原创 设计模式之建造者模式
1 概述 建造者模式(Builder Pattern)主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。因此, 建造者模式主要用来解决“对象部分”的需求变化。 这样可以对对象构造的过程进行更加精细的控制。2 示例 还是以生产手机为例,每个手机分为屏幕Screen、CPU、Battery。现在要生产两种手机,苹果
2013-11-20 22:26:01 1043
原创 设计模式之单例模式
1 概述 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:(1)某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。(2)省去了new操作符,降低了系统内存的使用频率,减轻GC压力。(3)有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多
2013-11-16 10:12:51 1080
原创 设计模式之工厂模式
1 概述 关于设计模式的内容等在网上有很多,但是没有自己实际的搞一把,多少对这些个东西还是有点模糊,今儿个从工厂模式开始,学习学习这23个由大牛们总结出来的设计模式,若有理解不到位的地方,还请多多指正。 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 有人把工厂模式分为三类: 1)简单工厂模式(Simple
2013-11-14 21:32:04 1151
原创 WEB开发总结(持续更新。。。)
近期开始搞搞web的东西,觉得有必要把遇到的问题总结一下,就在这里当做个笔记本吧... 可以在命令提示行中,切换到项目的根目录,输入如下命令: 即:mvn eclipse:eclipse -Dwtpversion=1.0刷新下eclipse w
2013-10-11 20:06:32 1563
原创 Storm入门
Storm框架入门1 Topology构成 和同样是计算框架的Mapreduce相比,Mapreduce集群上运行的是Job,而Storm集群上运行的是Topology。但是Job在运行结束之后会自行结束,Topology却只能被手动的kill掉,否则会一直运行下去。 Storm集群中有两种节点,一种是控制节点(Nimbus节点),另一种是工作节点(Superviso
2013-09-14 11:00:47 1251
原创 RESTLET开发实例
1 前提 由于近期工作的需要,要把RESTLET应用到项目中,于是在网上参考了一些资料的基础上,实践了一个关于RESTLET接口的小例子。 Restlet的思想是:HTTP客户端与HTTP服务器之间的差别,对架构来说无所谓。一个软件应可以既充当Web客户端又充当Web服务器,而无须采用两套完全不同的APIs。 Restlet提供了多个版本:Java SE、Java EE、android、Go
2013-09-03 23:29:23 1902
原创 HDFS2.x之RPC流程分析
HDFS2.x之RPC流程分析1 概述 Hadoop提供了一个统一的RPC机制来处理client-namenode, namenode-dataname,client-dataname之间的通信。RPC是整个Hadoop中通信框架的核心,目前采用ProtocolBuf作为RPC的默认实现。RPC的整体调用流程如下: 2 Protobuf Protocol
2013-08-21 20:12:24 1747 2
原创 Java自定义日志输出文件
Java自定义日志输出文件日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别、打印形式和日志的输出路径。1 log4j输出多个自定义日志文件如果在实际应用中需要输出独立的日志文件,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?先看一个常见的log4j.prope
2013-08-19 22:11:26 1481 1
原创 Linux Shell 数学运算
Linux Shell 数学运算 在Linux中直接使用数学运算符进行数学运算往往得不到我们想要的计算结果。要在Shell中进行数学运算,我们需要借助点小手段。目前,Linux Shell中进行数学运算的方法主要有三种:bc、expr、let。1 bc1.1 命令行方式 在bash界面,直接输入bc或者bc -q,就可以进去bc的命令行,通过使用数学运算符能够得到我们想
2013-08-16 23:36:24 1035
原创 关于硬盘和几种RAID
1 硬盘的基本工作原理1.1 硬盘部件结构图 1.2 主要参数术语解释磁头:在与硬盘交换数据的过程 中,读操作远远快于写操作,硬盘厂商开发一种读/写分离磁头。转速(Rotationl Speed):是硬盘内电机主轴的旋转速度,也就是硬盘盘片在一分钟内所能完成的最大转数。硬盘的转速越快,硬盘寻找文件的速度也就越快,相对的硬盘的传输速度也就得到了提高
2013-07-24 21:52:12 1429
原创 关于Java线程
1 概念 通常来说,我们编写的Java代码是以进程的形式来运行的,所编写的代码就是“程序”,而执行中的程序就是“进程”。进程是系统进行资源分配和调度的独立单位。 线程是位于进程的下一级,是系统中的最小的执行单位。但是线程本身不拥有资源,线程本身通常只拥有寄存器数据以及执行时的堆栈。同一个进程内的多个线程共享属于当前进程的资源,在需要资源的时候要抢占。 多线
2013-06-29 22:45:22 726
原创 Hadoop2.x集群动态添加删除数据节点
如果Hadoop集群已经在运行了,这时可能需要动态的添加新的数据节点到Hadoop系统中去,或者将某个数据节点下线,由于业务的需要,集群是不能重启的,那么具体的DataNode添加、删除步骤是什么样的呢?下面以DataNode的上线为例详细说明下如何动态的给HDFS集群新增数据节点(Hadoop2.0版本)。 首先简单说下几个相关的配置文件。(1)由dfs.hosts
2013-06-13 22:07:12 1956
原创 Amazon S3 功能介绍
1 存储过程 创建用于存储数据元的桶,可以选择数据元所驻留的地区(目前来说,选择东京、新加坡会快些,美国本土更便宜),上传数据元到桶,进行持久化存储。另外,可以对上传的数据元及桶进行访问控制、加密等设置。每个AWS账户可以创建多个用户,用户可以对所拥有的数据进行上述权限控制。 目前可存储的你内容有:(1)多媒体、音乐、图片(2)视频监控文件
2013-06-04 22:35:32 2704
原创 win7下利用VM8安装CentOS6.3配置静态IP上网
1 环境 宿主主机64位win7,利用VM8安装的64位CentOS6.3,64位的。在VM中配置CentOS的IP为静态,可上互联网。具体配置过程如下。2 步骤 首先将VM的setting选项中,将虚拟机的联网模式更改为桥接,截图如下:桥接和NAT两种连接方式应用简介:(1)“桥接”方式。这时虚拟机和真实主机是“兄弟关系”,虚拟机网卡(本地连接)
2013-01-30 23:03:38 1571
几种经典排序算法的Java实现
2011-11-21
编程思想.第2卷.实用编程技术.pdf
2011-06-17
SWT-Designer-Ecpipse3.3 (3)
2011-03-16
SWT-Designer-Ecpipse3.3 (2)
2011-03-16
SWT-Designer-Ecpipse3.3 ( 1)
2011-03-16
JFreeChart-API.chm
2011-03-16
智能IC卡及密码钥匙检测规范(试行)
2011-03-16
文档类目的存储和搜索技术
2016-02-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人