- 博客(42)
- 收藏
- 关注
原创 分布式session管理之存储
分布式session的一种处理方式是集中存储和管理,通常可以采用缓存(redis等),考虑单点问题可以考虑双写备份。在分布式应用中,如何保证session的并发处理是分布式session的重要问题之一。这里我们分析一种解决方案:1. 存储工具ThreadLocal,它是一个辅助存储的工具。ThreadLocal中的基本存储结构是ThreadLocalMap,其中的基础对
2013-01-16 13:36:21
850
原创 JAVA VM bug :A fatal error has been detected by the Java Runtime Environment
今天,一台服务器突然挂掉了,于是查看应用日志,jboss日志,jvm等,应用该日志正常,JBOSS出现如下log: A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0x00002ab85834003a, pid=7204, tid=1452513600## J
2012-07-13 11:06:45
1507
转载 动态代理
从JDK1.3开始,Java就引入了动态代理的概念。动态代理(Dynamic Proxy)可以帮助你减少代码行数,真正提高代码的可复用度。例如,你不必为所有的类的方法里面都写上相同的Log代码行,取而代之的是实用类的动态代理类。当然,这种便利是有条件的。本文简单介绍Java动态代理的原理,并实现一个被代理的Servlet创建,和调用的过程。 1.代理模式(Proxy Pattern
2012-05-03 12:08:17
601
原创 MySQL索引
索引(index)是帮助MySQL高效获取数据的数据结构,是现实中性能问题的首要问题。索引类型B-Tree索引B-Tree意味着数据存储是有序的,并且每个叶子页到根的距离是一样的。B-Tree索引加速了数据访问,因为存储引擎不会扫描整个表得到需要的数据。而是从根节点开始进行树查找。因为B-Tree按顺序保存了索引的列,它们对于搜索范围数据很有用。能使用B-Tree索引的查询类型
2012-02-13 13:09:05
790
原创 hive的安装
在安装hdoop以后,打算安装hive,数据库用mysql。在安装的过程中还是经过了一番周折的。记录下来,希望对大家有帮助。1. Hadoop的安装 请参考http://blog.youkuaiyun.com/ydd326/article/details/68603042. MySQL的安装 sudo apt-get install mysql-server 根用户进入
2011-12-09 13:00:34
662
转载 Hadoop的调度器
随着MapReduce的流行,其开源实现Hadoop也变得越来越受推崇。在Hadoop系统中,有一个组件非常重要,那就是调度器,它的作用是将系统中空闲的资源按一定策略分配给作业。在Hadoop中,调度器是一个可插拔的模块,用户可以根据自己的实际应用要求设计调度器。Hadoop中常见的调度器有三种,分别为:(1)默认的调度器FIFOHadoop中默认的调度器,它先按照作业的优先级高低,再按照
2011-11-23 10:26:47
776
翻译 JAVA runtime error
JAVA runtime errors在程序运行时候,出现runtime errors是普遍的现象。在JAVA程序中也会出现runtime errors。在事件不能得到合适的处理或者代码中出现错误都会导致runtime errors的发生。Update your Version of Java一个引起这种错误的原因是你计算机中安装的JAVA版本问题。
2011-11-18 12:54:04
2137
转载 ConcurrentHashMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap
2011-11-17 09:25:25
429
原创 util HashMap
1.HashMap涉及的数据结构 Entry[] ; //Entry数组:存储HashMap元素的地方. //Entry //1.封装了key;value; //2.本身是一个单向链表;包含hash值;next;指针; static class Entry implements Map.Entry { final K key;
2011-11-14 11:47:02
410
转载 HashTable与HashMap
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。 2
2011-11-14 10:23:32
362
原创 HDFS概念
HDFS上的文件也被分为以块为大小的分块,作为单独的单元存储。HDFS中的块比磁盘的块大,目的是为了减小寻址开销。通过让一个块足够大,从磁盘转移数据的时间能够远远大于定位这个块开始端的时间。因此,传送一个由多个块组成的文件的时间就取决于磁盘传送率。名称节点 --- 管理者数据节点 --- 工作者(多个)名称节点管理文件系统规定命名空间,它维护着这个文件系统树以及这个数内所有的文件和索引
2011-10-26 20:45:37
833
原创 HDFS集群的平衡
文件块在集群中均匀分布的好处---HDFS能达到最佳工作性能,一个负载不均衡的集群可能影响MapReduce的本地化优势,为负载搞的数据节点带来更大的压力。1. 选用默认的每个节点20个map来运行distcp来进行数据复制,可以避免不均衡的情况。总之让map的数量多于集群中节点的数量。2. 均衡器程序是hadoop的一个守护进程,用来重新分布块,具体做法是遵循块副本放置策略(把块副本放在
2011-10-25 09:33:37
1839
原创 下雨天的十月末还不冷
十月末了转眼就十月末了还不冷的杭州 雾很多看不清远处的东西 渐渐的有种琐事缠身的感觉没有办法去做想做的事情的时候 是不是真的能为自己织把伞……告诉自己 可以!
2011-10-24 10:42:34
649
转载 Hadoop分布式文件系统架构及设计要点
一、前提和设计目标1、硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是HDFS的核心架构目标。2、跑在HDFS上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理;比之关注数据
2011-10-12 21:43:15
736
原创 MapReduce性能优化---调度
目前,很多internet服务都具有上百万的用户。这些服务产生海量的数据,如何针对海量数据进行分析和处理是目前亟待解决的问题。Google提出了一个令人兴奋的架构。MapReduce把任务分解成小任务,这些小任务可以在普通PC集群上并行执行。这种架构的一种开源实现是yahoo
2011-10-12 19:40:35
1442
原创 linux下从安装JDK到安装ssh到hadoop单机伪分布式部署
环境: ubuntu 10.10 JDK1.6.0.27 hadoop 0.20.2 一. ubuntu 下 JDK 的安装:1. 下载jdk-6u27-linux-i586.bin2. 拷贝到/usr/java,设置文件的操作权限3. $ ./jdk-6u27-linux-i586.bin开始安装4. 设置环境变量 vi /etc/profile
2011-10-10 20:16:21
1834
1
原创 java设计模式---Strategy Pattern---策略模式
抽象策略类定义了策略的输入和输出(接口),不同策略的实现留给子类实现。//PlusStr类public abstract class PlusStr{ public abstract String plus(String str);}/
2011-09-16 13:33:57
635
原创 java设计模式---Bridge Pattern---桥接模式
桥接模式的最大特征就在区分成“功能的类层次”和“实现的类层次”。如果想新增功能的话,就在功能的类层次追加类。这时候不需要修改实现的类层次,新增加的功能利用接口定义的实现功能来组合实现。如上图:左边部分是功能层次类,右边部分是实现层次类。它们通过变量impl来实现桥接。
2011-09-15 20:37:54
763
原创 java设计模式---Abstract Facotry Pattern---抽象工厂模式
抽象工厂模式中的抽象工厂是把各种抽象零件组合成抽象产品。换句话说,处理的重点是在接口(API)而不是具体的实现。只利用接口就能把零件组合成产品。Template Method Pattern和Builder Pattern的情形是在子类进行具体的实现,而Abstract Fact
2011-09-14 14:45:43
448
原创 雾
昨天很累的感觉,可能是因为觉得……回想过去的两个月,真的让人感觉实现不了自己的价值。即使你提出个很好的想法也会被一笑而过,索性不提。……因此,每天起来都告诉自己,不能忘记自己的梦。自己要得到什么,为了什么等等。
2011-09-14 10:08:24
552
原创 Collections的sort方法 排序
通过Collection的sort方法对List进行排序,有两种方法实现:1. List中的对象应继承Comparable接口,并实现其compareTo方法 //需要比较的对象类PersonHpublic class PersonH implements C
2011-09-08 20:08:03
17422
原创 java设计模式---Prototype Pattern---原型模式(复制建立对象)
在我们建立Something类的实例时,会使用下面的表达式: new Something();利用new指定类名可以产生对象实例。但是在有些情况下不靠new来产生实例是方便和必要的:1. 种类过多无法整合成类时2. 不容易利用类产生对象实例时3. 希望把框架和
2011-09-08 16:40:51
822
原创 java中的集合
在java的iterator中,如果想删除一个元素,比如删除第一个元素,则应该先调用next()方法,再remove()。否则会抛出异常IliegalStateException。java类提供的AbstractCollection类把基础方法size和iterator抽象化
2011-09-08 13:31:27
487
原创 java设计模式---singleton---单例模式
有时候需要让某个类只产生一个实例,能确保对象实例只有一个的Pattern就成为Singleton Pattern。Singleton类的构造函数是private的,主要是为了禁止从非Singleton类调用构造函数。把其设置为private纯粹是为了防
2011-09-07 22:08:49
536
转载 数据结构-堆
最大堆/最小堆 堆的定义是:n个元素的序列{k1,k2,…,kn},当且仅当满足如下关系时被成为堆 (1)Ki 2i 且 ki 2i-1 或 (2) Ki >= k2i 且 ki >= k2i-1 (
2011-09-07 19:57:19
438
原创 java的回调函数
java的函数回调的概念个人总觉得有点别扭。个人认为其无非是模板方法模式的一种。看一下网络上都用的例子://回调接口public interface CallBack { //执行回调操作的方法 void execute(); }
2011-09-07 19:17:10
508
原创 java设计模式---Factory Method Pattern---工厂方法模式
Factory Method 工厂方法---建立对象实例交给子类Template Method Pattern是在父类建立处理逻辑的大纲骨架,而在子类补充具体的处理内容。把这个Pattern应用在生产对象实例方面,就是Factory Methond Pattern.程序示
2011-09-07 13:33:00
494
原创 java设计模式---Template Method模板方法---实际处理交给子类
作为模板的方法要定义在父类,而方法的定义中用到的抽象方法在子类中才实现。要在子类实现方法后才能决定具体的操作。不同的子类实现体现不同的执行内容,但是不论在哪个子类实现,处理的大致流程都要依照父类所定制的方式。像这样父类指定处理大纲、在子类中规定具体内容的Desigh Patter
2011-09-07 11:13:12
436
原创 java设计模式---Adapter适配器模式
Banner是广告牌,广告牌可以有两种打印文字的方式showWithParen和showWithStar。PrintBanner是发挥适配器的功能,先扩充extends banner,继承其两个方法。它还实现implements了Print接口,实现printWeak和print
2011-09-06 09:04:01
444
原创 JAVA设计模式---Iterator迭代器模式
迭代器模式类似于for循环式的代码段在日常开发过程中是很经常用到的,所有有了Iterator模式。既然简单的for循环能实现,为什么要引入迭代器模式呢?因为Iterator可以跟实现分开,单独进行递增。后面会详细分析。下面通过一个例子来看一下迭代器模式的使用。例子是一
2011-09-05 16:50:40
546
转载 MVC
MVC与WEB应用MVC是什么就不用我多说了.对于现有较成熟的Model-View-Control(MVC)框架而言,其注意的主要问题无外乎下面这些:Model:模型应该包含由视图显示的数据.在J2EE Web应用中,数据通常应该由普通的javabean组成.一旦一个
2011-09-01 19:06:20
670
转载 浅谈java中的四个核心概念
Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。现在介绍下java的四个核心概念:1.Java虚拟机Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器
2011-08-31 18:59:35
400
转载 Spring Ioc-依赖注入的几种方式
一 setter方法注入配置文件如下: element -->action实现类中代码:private IHelloService helloservice;private String name ;public void sayHel
2011-08-31 18:57:46
649
原创 IOC 与 AOP
IOC和AOP是Spring的技术核心。网上已有很多介绍,这里借鉴过来作为学习。IOC介绍: 控制反转IOC(又称DI: Dependency Injection),就是Inversion of Control。IOC主要协调个组件间的相互依赖关系,使组件间的耦合度降
2011-08-23 09:29:31
672
原创 JAVA Annotation & 自定义Annotation
Java 的注解是用来描述JAVA 源代码的。J2SE50.的java.lang包中预定义了三个注解:override,deprecated,suppressWarnings.1. Override注释:仅用于方法,指明注释的方法将覆盖父类中的方法。2. Deprec
2011-08-16 21:56:35
487
原创 JAVA线程安全集合
java.util.concurrent提供了队列和三列表的高校实现:concurrentLinkedQueue和concurrentHashMap.copyOnWriteArrayList和copyOnWriteArraySet 是线程安全的集合。
2011-07-26 17:25:34
524
原创 Java多线程 同步 锁 条件对象
每个进程都有它自己的变量的完备集,线程共享相同的数据。---这也是危险之处。线程创建和销毁的开销都比进程小。---这是好处。简单的,你只要实现Runnable接口,实现重载run()方法,来做自己想做的事情。然后就是开启一个线程,把你实现的类的对象传入:Runnable r =
2011-07-26 17:10:21
1689
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人