- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 hadoop中的NullpointException
在做一个hadoop项目中,利用HDFS存储日志文件。为了将未关闭的文件进行恢复,我们需要判断一个文件是否为正在打开的状态。fs.getClient().namenode.getBlockLocations(path.toUri().getPath(), 0, fs.getFileStatus(path).getLen()).isUnderConstruction();通过这个调用可以获...
2012-03-08 14:33:48 269
原创 java
在maven引用存在有log4j的依赖时,总会报以下错误:12-3-5 下午10时49分58秒: Missing artifact javax.jms:jms:jar:1.1:compile12-3-5 下午10时49分58秒: Missing artifact com.sun.jdmk:jmxtools:jar:1.2.1:compile12-3-5 下午10时49分58秒: Missing...
2012-03-05 22:53:15 169
原创 mysql启动找不到mysql.sock的解决办法
通过rpm安装好mysql,调用mysql,抛出Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock这样的错误,其实是mysql没有起来。通过调用/usr/share/mysql/mysql.server start.再调用mysql,就可以成功登录了。...
2011-11-24 13:32:16 713
原创 超级强悍的java对象属性查看工具
在做一个hadoop的editlog查看工具,由于editlog都是用dataoutputStream输出的,在载入这类文件需要完全相反的方向DatainputStream先转换成对应的类,这个非常麻烦。特别是有部分类的成员是private的,也没有提供get方法,如何方便打印这些信息。想到只有用终极武器反射来完成这样的使命,以下就是我写的可以完全遍历对象树并将对象用json格式打印处理的code...
2011-03-22 17:44:25 272
原创 慎用junit作为多线程环境的启动入口
错误现象:我在调试一个多线程环境下的server程序。用junit的测试方法作为启动,很快程序就退出,而且没有任何异常信息。server程序的逻辑是主线程启动多个线程池后退出。多个线程池的线程都不是Daemon线程。采用main方法启动后程序将不会退出。 原因分析:在多线程环境下,程序退出的条件是,所有的非Daemon线程都正常结束或者某个线程条用了system.exit方法,导致...
2011-02-16 15:32:01 100
原创 jetty7 嵌入式下如何支持jsp
由于我们项目使用jetty开发,一直采用嵌入式方式调试程序。由于项目要支持jsp特性,发现总是抛出HTTP ERROR 500Problem accessing /mvc-basic/WEB-INF/views/welcome.jsp. Reason: JSP support not configuredPowered by Jetty://这样的错误...
2011-02-11 17:28:26 182
原创 javascript 随笔
深入理解JS中的函数,对象,及类。 Js 高级应用关于变量作用域看下面一个例子都可以在全局命名空间内隐藏函数abc,哪个使用方式更好,为什么?Example1:var Base = {};(function(){ function abc(a){ alert(a); } Base.show = function(a){...
2011-01-28 10:46:27 122
原创 2010北京velocity大会总结
以下是本次北京velocity大会的总结,分三节介绍如下:1. 大会简介2. 分主题概述3. 会议总结大会简介本次北京的Velocity大会是国内外互联网公司为提高网站性能而举办的技术交流大会。很有幸参加了本次velocity大会,国内外知名的互联网公司差不多都参加了本次大会。会议上午是主题演讲,主要是会议的赞助商代表概括介绍公司的一些技术特点,我们公司Sum...
2010-12-14 16:37:43 243
原创 eclipse卡死解决办法之一
近段时间更新了eclipse版本,先更新3.5,而后又更新到3.6. 在编辑代码的时候容易出现卡死,特别是想选中某一代码块进行拷贝时。本来认为是3.6的问题,回退到3.5问题依旧。又怀疑是不是jvm参数设置太小,导致不停GC,检查一下,我的eclipse.ini 参数设置为-Xms256m -Xmx1024m,已经不小了。切换到任务栏,检查cpu和memory的占用情况,我机器物理内存为2G,但占...
2010-07-21 17:45:53 323
原创 zookeeper系列之应用-分布式锁服务
前面zookeeper系统文章主要讲了zookeeper的实现原理,对我们使用好zookeeper有好处。如何使用zookeeper,让我开始实践之旅。通过简单的实现,zookeeper可以很容易提供分布式锁服务。互斥锁的实现在zookeeper的源代码包中recipe下有一个lock实现的例子,大家可以看到一个writelock的实现。writelock相当于一个互斥锁,但要和java提...
2010-07-08 17:20:47 118
原创 云计算随想
现在几乎所有涉足互联网的大公司都要与云扯点关系,google,microsoft,IBM, oracle, ebay,amazon,facebook,阿里巴巴,百度,搜狐太多了。何为云?这个概念本身就是云里雾里的,每家公司的理解都有些许不一样,但有些三个共同特点:1.分布式计算2.分布式存储3.虚拟化有的公司涉及存储,有的涉足计算,有的涉足硬件层面的,租用cpu计算能力或存储空间,...
2010-07-08 17:05:02 102
原创 zookeeper系列之异步通知模式-Watcher
Watcher介绍 Watcher是Zookeeper用来实现distribute lock, distribute configure, distribute queue等应用的主要手段。要监控data_tree上的任何节点的变化(节点本身的增加,删除,数据修改,以及孩子的变化)都可以在获取该数据时注册一个Watcher,这有很像Listener模式。一旦该节点数据变化,Follow...
2010-07-08 16:48:58 200
原创 zookeeper系列之线程模型
了解Zookeeper的线程有利于我们充分了解Zookeeper的异步处理能力,也有利于对多线程同步问题更深入了解,解决一些同步问题。我们将分别就客户端,leader和Follower做详细的讲解。Client线程模型Follower线程模型Leader线程模型...
2010-07-08 16:45:04 261
原创 zookeeper系列之通信模型
本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型。Zookeeper的通信架构在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择。而leader...
2010-07-08 16:39:27 127
原创 zookeeper系列之数据模型
zookeeper的数据模型就是一颗树,对外的操作接口看起来就像一个小文件系统。题外话,很感慨最近遇到的好几个数据模型都是树状的,jcr的数据模型,jboss 的tree cache都是树状的表现形式。每个Zookeeper server都存在一个相同的树,server之间需要维持树的一致性,并且任何时刻这棵树都存在在内存中,因此,我们一定要控制树的规模。树有多个节点(node)构成,要获取节...
2010-07-08 15:28:57 156
原创 zookeeper系列之概要介绍
Zookeeper是Hadoop下的一个子项目,主要用来在分布式环境下提供分布式锁、配置管理、名字服务、群组服务。它具有很高的可用性、稳定性、可靠性。它在分布式应用中像一把瑞士军刀,很多地方都用得着,像我们的DMS系统中就用它来提供分布式锁服务和动态配置服务。Zookeeper就像google在云技术领域提供的四大金刚之chubby(分布式锁服务),采用了简化的praxos算法来确保zo...
2010-07-08 15:15:02 137
原创 java exception处理心得
我们知道java的异常有两个大类,一种是check Exception,一种是runtime Exception。1.check exception:如果一个方法抛出check exception,调用代码要么catch要么在方法声明中重抛该异常。2. runtime Exception:如果一个方法抛出RuntimeException,则调用代码可以catch,也可以忽略。由于可以忽...
2010-07-07 14:16:11 142
原创 一个关于DB commit的小问题
一直以来,都认为在开启事务下如果往DB里面进行操作,过程中没有发生异常,commit一定会成功。由此可以推出一个矛盾的结论,如果有一个connect开启事务,增加一条记录,假如这个记录的primary key为name,输入的记录name为joe,未提交,另外一个connect开启事务,增加同一的记录,这个增加的结果会怎么样呢?假如增加成功,则第一个connect开启的事务commit应该会失败,...
2010-07-07 09:43:53 729
google的灾难备份
http://www.kuqin.com/system-analysis/20100331/82697.html跟我们公司的primary/GSB几乎如出一辙
2010-04-13 22:32:07 98
Erlang语言基础
前面一篇high level地介绍了Erlang语言在并发编程上的特点。本文详细介绍Erlang的基本语法: 在Erlang语法中,跟java或c有相当大的差异,跟以往我学过的任何语言(c,pasacal,vb,delphi,php,groovy,python)有巨大的不同,前面的语言要么是基于过程的,或者基于面向对象的,而Erlang是面向消息的或者说是基于函数的。 在语法要素方...
2010-04-10 16:22:53 164
Erlang,让我找到了云计算时代的编程语言
从去年开始研究java并发编程,对java的多线程,各种锁,线程池都有一定的了解。再加上看了一部分周伟明老师的《多核计算与程序设计》和《多核编程艺术》,总感觉多核时代的编程模式让程序员很痛苦。程序员不对软件和硬件知识做深入了解,要开发出具有高性能,高可用,高伸缩性的程序不是那么容易,特别是同步,锁,原子性,程序活性让很多从事软件开发多年的资深程序员都搞得不太清楚。而云计算时代,多核,多...
2010-04-10 13:13:53 126
OutOfMemoryError并非虚拟机就挂掉了
我们公司几次JVM培训都讲到了OutOfMemory问题,大家都在争论OutOfMemoryError是否一定导致JVM crash。让我们用一个非常简单的例子来说明这个问题:package com.webex.joe;public class OutOfMemoryTest { public static void main(String[] args) { int size = ...
2010-04-10 12:20:53 171
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人