摘要:
在网上看了一些关于java中的RandomAccessFile类的介绍,又经过查看Java API和自己编的测试程序,总算是对RandomAccessFile的使用有了一定的了解。自己做了以下比较详细的总结吧。 1.RandomAccessFile类的简单介绍 该类的实例支持对文件的随机读取和写入。随机存取文件的行为类似存储在文件系统中的一个大型字节数组。存在指向该隐含数组的光标或索引,称为文件指针。读取操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机存取文件以读取/写入模式创建,则写入操作也可用;写入操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针... 阅读全文
随笔档案-2013年07月
J2EE规范
2013-07-22 20:16 by java20130722, 182 阅读, 收藏,
摘要:
j2ee规范J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的 13种技术规范进行简单的描述JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。JNDI(Java Name and Directory Interface) JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文.. 阅读全文
深入分析 Java 中的中文编码问题
2013-07-22 20:08 by java20130722, 144 阅读, 收藏,
摘要:
几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语。这个翻译的过程就是编码。所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。这看起来有些霸道,但是这就是现状,这也和我们国家 阅读全文
深入分析 Java I/O 的工作机制
2013-07-22 20:04 by java20130722, 169 阅读, 收藏,
摘要:
Java 的 I/O 类库的基本架构I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,I/O 问题尤其突出,很容易成为一个性能瓶颈。正因如此,所以 Java 在 I/O 上也一直在做持续的优化,如从 1.4 开始引入了 NIO,提升了 I/O 的性能。关于 NIO 我们将在后面详细介绍。Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是:基于字节操作的 I/O 接口:InputStream 和 OutputStream基于 阅读全文
看科普片随感
2013-07-22 19:28 by java20130722, 152 阅读, 收藏,
摘要:
很多专业知识的科普片为什么能够让没有专业知识背景的人也能够看懂、并且印象深刻? 粗略总结以下4点。1、图、文、动画并茂。2、讲故事、“平民化“。3、用生活中的场景映衬一些专业知识。4、把复杂的东西简单化。如果我们传播一些专业知识的时候也能做到这样,那专业知识学起来就容易多了。加油! 阅读全文
Real differences between “java -server” and “java -client”-JVM Server和JVM Client的不同
2013-07-22 18:33 by java20130722, 217 阅读, 收藏,
摘要:
This is really linked toHotSpotand the defaultoption values(Java HotSpot VM Options) which differ between client and server configuration.FromChapter 2of the whitepaper (The Java HotSpot Performance Engine Architecture):The JDK includes two flavors of the VM -- a client-side offering, and a VM tuned 阅读全文
[置顶] 把长方形的构造函数写的文艺点儿
2013-07-22 18:07 by java20130722, 311 阅读, 收藏,
摘要:
文艺是一种感受,它来自路过看的人。代码也如此,代码文艺不文艺,首先要从client code看。假设我们想要实现一个长方形的构造函数,怎么能写的文艺点儿呢?1.普通青年直接用构造函数当你看到 new Rectangular(2.0, 4.0)的时候,你知道2.0和4.0是什么意思吗?幸运的是这个类只有两个构造参数,还不算太猛。如果类的field太多,只有进入Rectangular的类实现去看了。像我这种记性不好的,说不定一会儿就要看下,隔一会儿又要看下。public class Rectangular { private final double length; private final.. 阅读全文
基于事件的 NIO 多线程服务器
2013-07-22 17:39 by java20130722, 236 阅读, 收藏,
摘要:
JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处理能力和处理中的等待时间,达到提高服务能力的目的。多线程的引入,容易为本来就略显复杂的 NIO 代码进一步降低可读性和可维护性。引入良好的设计模型,将不仅带来高性能、高可靠的代码,也将带来一个惬意的开发过程。线程模型NIO 的选择器采用了多路复用(Multiplexing)技术,可在一个选择器上处理多个套接字, 通过获取读写通道来进行 IO 操作。由于网络带宽等原因,在通道的读、写操作中是容易出现 阅读全文
黑马程序员--IO流
2013-07-22 17:20 by java20130722, 205 阅读, 收藏,
摘要:
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------java的输出/输入是以流的方式来处理的,流是在计算机的输入、输出操作中流动的数据序列。流的分类:(1)按照操作数据分为字节流和字符流。(2)按照流向分为输入和输出流。输入输出流(IO流)常用基类:字节流基类:InputStream和OutputStream。字符流基类:Reader和Writer。注:由这四个类派生出来的子类名称都是以其父类名作为其子类名的后缀。 如,InputStream的子类FileInputStream R. 阅读全文
一致性哈希算法及其在分布式系统中的应用
2013-07-22 17:18 by java20130722, 254 阅读, 收藏,
摘要:
(转)一致性哈希算法及其在分布式系统中的应用(2011-11-12 22:11:39)转载▼标签:哈希杂谈Consistent hashing算法非常简洁,如果你有一系列服务器,需要把很多 keys (objects)映射到这些服务器上。这时Constent hashing就派上用场了。典型的例子包括 memcached 或者一些分布式系统。余数映射方法server = serverlist[ hash(key) % N ]余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或者移除服务器时,缓存重组的代价相当巨大。现假设一台服务器宕机了,把它从列表中移除,为了填补空缺,后面 阅读全文
Hibernate正向工程hbm2ddl
2013-07-22 16:56 by java20130722, 264 阅读, 收藏,
摘要:
转自:http://blog.csdn.net/yinianshen/article/details/4316809(向原作者致敬) 一般在项目开发过程中,使用比较多的就是先建好表,再利用hibernate反向工程生成*.hbm.xml文件跟POJO类,个人认为由于目前所使用的数据库都是关系数据库,而hibernate作为一个ORM,把对数据库的操作都对象化了,更应当从对象出发,生成数据库里面相关表,这样更加符合人认知事物的习惯。由于hibernate3提供了自带的工具hbm2ddl,建立根据你的对象建立数据库是一件非常简单的事情。SchemaExport工具:Hibernate的hbm2d. 阅读全文
JNI(3)
2013-07-22 16:50 by java20130722, 228 阅读, 收藏,
摘要:
JNI(3)基本类型java 基本类型和 原始机器类型Java TypeNative TypeDescriptionbooleanjbooleanunsigned 8bytejbytesigned 8 bitscharjcharunsigned 16 bitsshortjshortsigned 16 bitsintjintsigned 32 bitslongjlongsigned 64 bitsfloatjfloat32 bitsdoublejdouble64 bitsvoidvoidN/A引用类型JNI包含一定数量的与java对象已对应的引用类型在C中,所有其他引用类型的定义是一样的:typ 阅读全文
JNI(2)
2013-07-22 16:01 by java20130722, 276 阅读, 收藏,
摘要:
JNI(2)访问字段和方法JNI允许本地代码访问java 对象的字段和方法。调用需要两个步骤:例如调用cls类的f方法,1. 获取方法IDjmethodID mid = env->GetMethodID(cls, “f”, “(ILjava/lang/String;)D”);2. 然后本地方法可以重复的使用方法IDjdouble result = env->CallDoubleMethod(obj, mid, 10, str);报告编程错误JNI 不会检查编程错误,例如传递null指针或者非法的类型参数。 非法的类型参数包括使用普通对象代替类对象,JNI不检查这些错误的原因是:检查 阅读全文
Java Native Interface Specification(JNI)
2013-07-22 11:12 by java20130722, 321 阅读, 收藏,
摘要:
Java Native Interface Specification(JNI)使用场景:需要的功能,标准的java不能提供有了一个用其他的语言写好的工具包,希望用java去访问它当需要高性能的功能时(时间是最主要的因素)通过本地方法(通过JNI),可以完成:创建,检查,和更新java 对象(包括数组和Strings)调用java方法捕捉和抛出异常加载类和获取类信息运行时类型检查 阅读全文
用AtomicStampedReference解决ABA问题
2013-07-22 01:17 by java20130722, 15866 阅读, 收藏,
摘要:
在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:现有一个用单向链表实现的堆栈,栈顶为A,这时线程T1已经知道A.next为B,然后希望用CAS将栈顶替换为B:head.compareAndSet(A,B);在T1执行上面这条指令之前,线程T2介入,将A、B出栈,再pushD、C、A,此时堆栈结构如下图,而对象B此时处于游离状态:此时轮到 阅读全文
REST和认证
2013-07-22 01:09 by java20130722, 534 阅读, 收藏,
摘要:
REST和认证我们在设计REST(Representational State Transfer)风格的Web service API,有一个问题经常要考虑,就是如何设计用户认证的体系(Authentication).比较传统的做法是首先有一个登陆的API,然后服务器返回一个session ID,后续的操作客户端都必须带上这个session ID,但是这样的,服务就变成了有状态了,不符合REST风格的原则。另外,由于负载均衡的存在,必须有公共存储来保存用户的Session,这也增加了系统的复杂度。所以比较好的做法是每次都传递认证信息,这样系统就是无状态的,当然由于每次都需要认证,必然降低了一些 阅读全文
paxos 实现
2013-07-22 01:06 by java20130722, 476 阅读, 收藏,
摘要:
本文主要介绍zookeeper中zookeeper Server leader的选举,zookeeper在选举leader的时候采用了paxos算法(主要是fast paxos),这里主要介绍其中两种:LeaderElection 和FastLeaderElection.我们先要清楚以下几点一个Server是如何知道其它的Server在zookeeper中,一个zookeeper集群有多少个Server是固定,每个Server用于选举的IP和PORT都在配置文件中除了IP和PORT能标识一个Server外,还有没有别的方法每一个Server都有一个数字编号,而且是唯一的,我们根据配置文件中的配 阅读全文
Zookeeper全解析——Paxos作为灵魂
2013-07-22 01:03 by java20130722, 169 阅读, 收藏,
摘要:
Zookeeper全解析——Paxos作为灵魂原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为 阅读全文
【转】zookeeper 学习资料
2013-07-22 00:56 by java20130722, 205 阅读, 收藏,
摘要:
这段时间学习zookeeper,记录一下找到的一些资料zookeeper学习记录http://agapple.iteye.com/blog/1111377zookeeper watcher功能分析http://luzengyi.blog.163.com/blog/static/529188201064113744373/ watcher evetn对象客户端与服务器交互的流程http://luzengyi.blog.163.com/blog/static/529188201061155444869/watch 事件的注册和调用基于zookeeper的分布式lock实现http://agappl 阅读全文
基于ZooKeeper的分布式Session实现
2013-07-22 00:51 by java20130722, 305 阅读, 收藏,
摘要:
1.认识ZooKeeperZooKeeper—— “动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动 物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相互串门,或是相互厮杀,就需要动物园管理员按照动物的各种习性加以分类和管理,这样我们才 能更加放心安全的观赏动物。回到我们企业级应用系统中,随着信息化水平的不断提高,我们的企业级系统变得越来越庞大臃肿,性能急剧下降,客户抱怨频频。拆 分系统是目前我们可选择的解决系统可伸缩性和性能问题的唯一行之有效的方法。但是拆分系统同时也带来了系统的复杂性—— 阅读全文
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
2013-07-22 00:49 by java20130722, 217 阅读, 收藏,
摘要:
安装和配置详解本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。单机模式单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/home/zookeeper-3.2.2 下,Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是 zkServer.sh,在 3.2.2 这个版本 Zookeeper 没有提供 windows 阅读全文
ZooKeeper典型应用场景一览
2013-07-22 00:45 by java20130722, 133 阅读, 收藏,
摘要:
日期:2011-10-08作者:ni掌柜查看PDF版本ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列API接口(或者称为原语集),摸索出来的典型使用方法。因此,也非常欢迎读者分享你在ZK使用上的奇技淫巧。ZooKeeper典型应用场景 阅读全文
ZooKeeper权限控制
2013-07-22 00:43 by java20130722, 458 阅读, 收藏,
摘要:
日期:2011-11-02作者:ni掌柜目前在公司内部使用ZooKeeper的地方越来越多,应用大多喜欢自己部署一套ZK集群来使用。考虑到ZK的高可用,并且一套ZK集群至少3台机器, 那么每个应用,尤其是一些非核心应用都自己去部署一套的话,对资源利用率很低。另外,随着ZK容灾的提出,单套ZK集群使用的机器量会更大,运维人员开始 对这个情况担忧,强烈希望能够合并ZK集群。ZK集群合并使用本身并没有太大的难度,问题在于应用方是否愿意大家共用一套ZK集群,这其中一个显而易见的问题就是权限:如果我的数据被别人动了怎么办?在公司不少牛人的帮助下,暂时得到两个权限方案,同时也希望大家提出自己的看法,共同进 阅读全文
为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
2013-07-22 00:42 by java20130722, 1729 阅读, 收藏,
摘要:
日期:2011-12-07作者:ni掌柜(所有要下载的文件都在这里:https://issues.apache.org/jira/browse/ZOOKEEPER-1320) ZooKeeper功能定位专一,这“导致”了他并不支持一些“非主流”功能。但是有时候,作为ZooKeeper管理员还是很需要某些功能:比如通过指定ip的方式,拒绝某个客户端的连接和操作请求。 目前ZooKeeper官方的说法是,通过配置iptables来实现这个需求。(另外,ZK能够设置单个客户端的最大连接数,但是对于突发情况,这个貌似是没用的,因为需要重启)。对于那些有Server的系统来说,这个功能其实还是蛮需要的, 阅读全文
ZooKeeper管理员指南——部署与管理ZooKeeper
2013-07-22 00:41 by java20130722, 286 阅读, 收藏,
摘要:
日期:2012-10-20作者:ni掌柜1.部署本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容:系统环境集群模式的配置单机模式的配置系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生产环境的ZK集群。如果仅仅是想在单机上将ZK运行起来,进行一些开发与测试,那么第三部分或许是你的菜。1.1系统环境1.1.1平台支持平 台运行client运行server开发环境生产环境GNU/Linux√√√√Sun Solaris√√√√FreeBSD√ⅹ,对nio的支持不好√√Win32√√√ⅹMacOSX√√√ⅹ注:运行client是指作为客户端,与server进行数据通信,而 阅读全文
zookeeper分布式锁避免羊群效应(Herd Effect)
2013-07-22 00:36 by java20130722, 890 阅读, 收藏,
摘要:
日期:2012-10-25作者:ni掌柜本文主要讲述在使用ZooKeeper进行分布式锁的实现过程中,如何有效的避免“羊群效应(herd effect)”的出现。一般的分布式锁实现这里简单的讲下一般的分布式锁如何实现。具体的代码实现可以在这里看到:https://svn.apache.org/repos/asf/zookeeper/trunk/src/recipes/lock/在之前的《ZooKeepe数据模型》一文中提到过,zookeeper中节点的创建类型有4类,这里我们重点关注下临时顺序节点。这种类型的节点有几下几个特性:节点的生命周期和客户端会话绑定,即创建节点的客户端会话一旦失效,那 阅读全文
ZooKeeper FAQ
2013-07-22 00:33 by java20130722, 215 阅读, 收藏,
摘要:
日期:2011-12-20作者:ni掌柜这段时间来,也在和公司里的一些同学交流使用zk的心得,整理了一些常见的zookeeper问题。这个页面的目标是解答一些zk常见的使用问题,同时也让大家明确zk不能干什么。页面会一直更新。客户端1. 客户端对ServerList的轮询机制是什么随机,客户端在初始化( new ZooKeeper(String connectString, int sessionTimeout, Watcher watcher) )的过程中,将所有Server保存在一个List中,然后随机打散,形成一个环。之后从0号位开始一个一个使用。两个注意点:1. Server地址能够重 阅读全文
ZooKeeper客户端地址列表的随机原理
2013-07-22 00:31 by java20130722, 487 阅读, 收藏,
摘要:
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://nileader.blog.51cto.com/1381108/932948查看PDF版本转载请用注明:@ni掌柜nileader@gmail.com在之前一个文章《ZooKeeper Java API 使用样例》中提到,客户端使用ZooKeeper的时候,首先会建立与ZooKeeper的连接,方法是通过调用下面这个构造方法来实现的。publicZooKeeper(StringconnectString,//intsessionTimeout,//Watcherwatcher,// 阅读全文
[置顶] 1+1/1+1/2+1/3 + ...+1/16的整数部分是多少?
2013-07-21 23:39 by java20130722, 835 阅读, 收藏,
摘要:
以前很小,大概四岁的时候,爷爷就开始教我数学和诗词,鸡兔同笼问题啊,手抄的唐诗啊这些。有个事情,直到我现在还记得很清楚,有这样一道题:问:1/1 + 1/2 + 1/3 + 1/4 + ... + 1/16 的整数部分是多少?当时我没有做出来,没有往心里去。爷爷说啥子问题都要弄清楚,这样学东西才会学踏实。虽然这道题做出来来,但是其他好多我多会,大人也喜欢夸我。我就把这道放着,没管它了。觉得考试不会考这样的题。小学中学学奥数,基本上都能考到奥数班上的前几名,当时奥数班的同学,我晓得的,都最后进了很好的大学。我最好考过第二名,从来没考过第一名。第一名是一个女生,每次都考150,每次,是每次都150 阅读全文
黑马程序员--多线程
2013-07-21 22:36 by java20130722, 161 阅读, 收藏,
摘要:
-------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------进程:是一个正在执行的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中一个独立的控制单元。线程在控制着进程的执行。线程的生命周期:新生状态、就绪状态、运行状态、阻塞状态、死亡状态。多线程的实现方式:第一种方法是通过创建Thread类的的子类来实现,另一种方法是通过实现Runable接口的类来实现。如何通过创建Thread类的的子类来实现多线程呢?步骤如下(1)定义类继承Thread(2)复 阅读全文
IIS7 + Tomcat7 整合共用80端口
2013-07-21 18:01 by java20130722, 457 阅读, 收藏,
摘要:
最近项目需要,要在将JSP项目集成到80端口,但是80端口已运行了一个项目,所有只有将tomcat集成进IIS。在google,baidu搜索看了需要博客,说法都大同小异,都是用这种方法:http://wenku.baidu.com/view/133615d5240c844769eaee5f我意外FQ发现个视频,安装一个exe文件,就可以将 IIS 和 tomcat 整合起来,超级简单,相比于以上链接里的修改注册表,下载dll等等配置来说简单很多。我已将youtube视频下载然后上传到youku了,视频链接:http://v.youku.com/v_show/id_XNTg1MTgyODgw. 阅读全文
黑马程序员--异常
2013-07-21 16:14 by java20130722, 166 阅读, 收藏,
摘要:
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------异常:是在程序运行时期出现的不正常情况。如用户输入错误、除数为零、需要处理的文件存在、数组下标越界等。其实异常就是java通过面向对象的思想将问题封装成了对象。在java中,将异常情况分为两种Exception(异常)和Error(错误)两大类。Error是由jvm抛出的严重性的问题。这种问题发生一般不编写针对性代码,对其进行处理。Exception可以使用针对性的处理方式来处理。异常的分类: (1)编译时被检测异常:只要是Exc. 阅读全文
memcached客户端(分布算法)
2013-07-20 17:03 by java20130722, 476 阅读, 收藏,
摘要:
一、背景资料 memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、根据hash(key)的结果,模连接数的余数决定存储到哪个节点,也就是hash(key)%sessions.size(),这个算法简单快速,表现良好。然而这个算法有个缺点,就是在memcached节点增加或者删除的时候,原有的缓存数据将大规模失效,命中率大受影响,如果节点数多,缓存数据多,重建缓存的代价太高,因此有了第二个算法。2、Consistent Hashing,一致性哈希算法,他的查找节点过程如下: 首先求出memcached服务器(节点)的哈希值 阅读全文
memcached全面剖析—— 客户端选择(一致性哈希算法)
2013-07-20 17:01 by java20130722, 374 阅读, 收藏,
摘要:
[摘选]memcached全面剖析—— 客户端选择(一致性哈希算法)博客分类:技术算法memcachedmemcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、hash模余算法:根据hash(key)的结果,模连接数的余数决定存储到哪个节点(键的整数哈希值,根据服务器个数取余来选定服务器节点),也就是hash(key)% sessions.size(),这个余数计算的方法简单,数据的分散性也相当优秀。 但也有其缺点。那就是当添加或移除服务器时,缓存重组的代价相当巨大。添加/删除服务器后(特别是某台服务器down机之后),余数 阅读全文
memcachedb
2013-07-19 17:22 by java20130722, 302 阅读, 收藏,
摘要:
memcachedb是为了持久化而产生的一个分布式 "key-value"存储系统,你可以认为是memcached+berkeley DB+sina的一些东西的一个集成,这个东西主要是为了提高持久化对象的访问效率,而不是一个缓存,他的特点是: 比传统的RDBMS速度快效率高 高并发环境下访问安全可靠,效率很不错 存储的数据比较小 总之:高效、安全的事物机制、memcached的分布式协议支持是他的几大亮点.你可以将一些数据量不大,读写却很频繁的数据放再这里面,而不用往mysql等数据库里写,据说“sohu”的在线用户是存在这里面的,可见这东西还是挺可靠的。 在官方文档里明确 阅读全文
轻量级持久存储系统 MemcacheDB
2013-07-19 17:21 by java20130722, 450 阅读, 收藏,
摘要:
轻量级持久存储系统MemcacheDB(转载)(2010-10-18 13:18:07)转载▼标签:代码复制默认守护进程主从it注:memcached可能简称mc,memcachedb可能简称mcdb一、memcachedb是什么mcdb是一款分布式键值持久存储系统,由新浪开源。mcdb基于mc协议,所以可以使用mc客户端直接使用,存储引擎方面使用BerkeleyDB,支持主从复制模式。二、memcachedb的应用场景首先,我们从基本的数据存储的角度看mysql、memcached、memcachedb的区别和特点,当然它们肯定不只这点区别。mc因为是非持久存储的,所以它的定位就是缓存。而m 阅读全文
一个简单的Trie树实现
2013-07-19 15:46 by java20130722, 170 阅读, 收藏,
摘要:
header file#ifndef TRIE_H_INCLUDED
#define TRIE_H_INCLUDED #include
#include typedef struct trie
{ int words; int prefixes; struct trie *edges[26];
} trie; trie * initialize(trie *node);
trie * addWord(trie *ver,char *str);
int countWords(trie *ver,char *str);
int countPrefix(trie *ve... 阅读全文
Hive Explain(翻译自Hive wiki)
2013-07-19 10:27 by java20130722, 345 阅读, 收藏,
摘要:
EXPLAIN语法Hive提供EXPLAIN命令,显示查询的执行计划。语法如下:EXPLAIN [EXTENDED] queryEXPLAIN语句使用EXTENDED,提供执行计划关于操作的额外的信息。这是典型的物理信息,如文件名。Hive查询被转换成序列(这是一个有向无环图)阶段。这些阶段可能是mapper/reducer阶段,或者做metastore或文件系统的操作,如移动和重命名的阶段。 EXPLAIN的输出包括三个部分:查询的抽象语法树执行计划计划的不同阶段之间的依赖关系每个场景的描述场景的描述,显示了与元数据相关操作的操作序列。元数据会包括FilterOperator的过滤器表达式, 阅读全文
Python打印log,包括行号,路径,方法名,文件
2013-07-18 11:09 by java20130722, 3052 阅读, 收藏,
摘要:
logger.py 文件 #!/usr/bin/python # coding: utf-8 import logging import logging.handlers from logging import * from datetime import * logger = logging.getLogger() logger.setLevel(logging.DEBUG) rht = logging.handlers.TimedRotatingFileHandler("reindex_out.log", 'D') fmt = logging.Forma 阅读全文
Lucene Payload 的研究与应用
2013-07-18 10:06 by java20130722, 516 阅读, 收藏,
摘要:
简介 Payload(元数据)诞生于Lucene的2.2版本,它是在Lucene2.1索引文件格式的基础上扩展而来,提供了一种可以灵活配置的高级索引技术,在某些特定应用场景下能优化基于Lucene构建的应用的搜索性能。本文重点研究了Payload的实现原理、索引结构的变化、接口API,在本文的最后举例说明了Payload是如何帮助改善搜索体验的。 Lucene是最初是由DouglassR.Cutting博士发布在自己主页上的一个Java全文信息检索工具包,后来成为ApacheJakarta家族中的一个开源项目,目前已经成为Apache基金会的顶级项目。索引是现代搜索引擎的核心,建立索引的过程就 阅读全文
hive array、map、struct使用
2013-07-17 17:33 by java20130722, 765 阅读, 收藏,
摘要:
hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的数据为相同类型,例如,假如array A中元素['a','b','c'],则A[1]的值为'b'Struct使用 阅读全文
黑马程序员--正则表达式
2013-07-17 11:02 by java20130722, 206 阅读, 收藏,
摘要:
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。但是符号定义越多,正则表达式就会越长,阅读性就会越差。正则表达式的构造摘要: (1)字符类 [abc] a、b或c(简单类) [^abc] 任何字符,除了a、b或c(否定) [a-zA-Z] a到z或A到Z,两头的字母包括在内(范围) [a-d[m... 阅读全文
[置顶] 读源码练内功(一):guava之eventbus
2013-07-16 23:14 by java20130722, 308 阅读, 收藏,
摘要:
现在如今眼目下,开源程序库越来越多,程序员们很多时候都不需要自己造轮子,就可以找到称心如意的开源库进行使用。虽然我们在使用各种各样的开源代码时,并不需要知道这些代码是如何实现的。但是了解它们的实现方法,不仅可以提升我们自己本身的编程能力和编程技巧,同时也为我们学习某一特定的技术点提供了可以模仿的例子。Guava简介如同boost之于c++,guava也几乎成为了java编程中不可或缺的一部分。guava中涵盖了很多有意思的东西,比如在java中使用函数式编程;新的数据结构,如bimap等等。总之,guava让写java程序成为一件更美好的事情。guava中还有很多很多有意思的东西,可以去gua 阅读全文
自定义Java Annotations实例以及用Java Reflection来解析自定义的Annotation
2013-07-16 18:17 by java20130722, 331 阅读, 收藏,
摘要:
转自 http://www.journaldev.com/721/java-annotations-tutorial-with-custom-annotation-example-and-parsing-using-reflectionJava程序员都知道,在Java世界里到处可见@Override, @Deprecated等等这些Annotations, 这些代码不仅不影响Java代码编译运行,还能对代码起到很好的解释作用。那么我们如何定义自己的Annotation呐? 接下来就是很好的例子!package com.journaldev.annotations; import java... 阅读全文
Solr之NamedList 简单介绍与实例解析
2013-07-16 01:44 by java20130722, 690 阅读, 收藏,
摘要:
大家都知道,Solr是一个基于Lucene高可配置的搜索服务器,大部分参数值以及相关优化等等都可以在solrconfig.xml中配置,那么就需要一个能够很快的进行解析和读取配置文件内容的数据结构,为此Solr提供了NamedList结构。 NamedList,一个有序的name/value容器,NamedList不像Map,他具有以下特点: 1、名字可以重复 2、NamedList中的element保持这有序状态 3、可以下标的形式访问Elements 4、name和value都可以为null NamedList中通过下边访问要快于通过name访问。 NamedList在org.apach. 阅读全文
Java中编写可变长参数的函数
2013-07-15 18:00 by java20130722, 242 阅读, 收藏,
摘要:
越来越多的Java库使用了可变长参数,不再需要加一个new Object[]那么别扭。那么如何自己实现一个这样的可变长函数呢?我们就以实现一个一长串的整数相加作为例子:变长参数是用T...标明,在函数体内,其实就是一个类型为T的数组,然后像操作数组那样进行变长参数就行了。例子:public class KMath { public static int add(int... args) { int result = 0; for (int arg : args) { result += arg; } ... 阅读全文
HIVE RCFile高效存储结构
2013-07-12 15:23 by java20130722, 269 阅读, 收藏,
摘要:
本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在 MapReduce环境下的大规模数据分析中扮演重要角色。Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数据库的数据存储和处理机制。它采用类 SQL语言对数据进行自动化管理和处理,经过语句解析和转换,最终生成基于Hadoop的MapReduce任务,通过执行这些任务完成数据处理。图1显 示了Hive数据仓库的系统结 阅读全文
hive中的bucket table
2013-07-12 15:14 by java20130722, 332 阅读, 收藏,
摘要:
当数据量比较大,我们需要更快的完成任务,多个map和reduce进程是唯一的选择。但是如果输入文件是一个的话,map任务只能启动一个。此时bucket table是个很好的选择,通过指定CLUSTERED的字段,将文件通过hash打散成多个小文件。create table sunwg_test11(id int,name string)CLUSTERED BY(id) SORTED BY(name) INTO 32 BUCKETSROW FORMAT DELIMITEDFIELDS TERMINATED BY ‘/t’;执行insert前不要忘记设置set hive.enforce.bucke 阅读全文
hive bucket
2013-07-12 15:13 by java20130722, 594 阅读, 收藏,
摘要:
BucketBuckets对指定列计算hash,根据hash值切分数据,目的是为了并行,每一个Bucket对应一个文件。将user列分散至32个bucket,首先对user列的值计算hash,对应hash值为0的HDFS目录为:/wh/pvs/ds=20090801/ctry=US/part-00000;hash值为20的HDFS目录为:/wh/pvs/ds=20090801/ctry=US/part-00020。hive中table可以拆分成partition,table和partition可以通过‘CLUSTERED BY’进一步分bucket,bucket中的数据可以通过‘SORT BY 阅读全文
hive中的静态分区与动态分区
2013-07-12 12:42 by java20130722, 394 阅读, 收藏,
摘要:
hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partitioned by (stat_date string,province string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';这个例子中创建了stat_date和pr 阅读全文
hive中select 走与不走mapreduce
2013-07-11 14:43 by java20130722, 648 阅读, 收藏,
摘要:
hive 0.10.0为了执行效率考虑,简单的查询,就是只是select,不带count,sum,group by这样的,都不走map/reduce,直接读取hdfs文件进行filter过滤。这样做的好处就是不新开mr任务,执行效率要提高不少,但是不好的地方就是用户界面不友好,有时候数据量大还是要等很长时间,但是又没有任何返回。改这个很简单,在hive-site.xml里面有个配置参数叫hive.fetch.task.conversion将这个参数设置为more,简单查询就不走map/reduce了,设置为minimal,就任何简单select都会走map/reduce 阅读全文
JSP response request 中文乱码
2013-07-11 14:36 by java20130722, 269 阅读, 收藏,
摘要:
初学JSP,发现response,request都是乱码,弄得我都抓狂了。各种纠结之后,发现几点Eclipse文件编辑器的默认编码不一定是utf-8,所以开发之前最好把默认编码修改下。Eclipse-->windows->preference->General->Content Types-->右侧的Content Type中选中 Text->JSP 将默认编码改为“ISO-8859-1”修改Eclipse中workspace中的编码Eclipse-->windows->preference->General->Workspace-& 阅读全文
Hive内部自定义函数UDF
2013-07-11 14:30 by java20130722, 519 阅读, 收藏,
摘要:
HIVE UDF整理(一)关系运算等值比较: =语法:A = B 操作类型: 所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE举例:hive> select 1 from dual where 1=1;1不等值比较: 语法: A B 操作类型: 所有基本类型描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则为TRUE;否则为FALSE举例:hive> select 1 from dual where 1 2;1小于比较: select 1 from dual where 1 select 1 from 阅读全文
eclipse编辑jsp没有代码提示
2013-07-10 20:02 by java20130722, 933 阅读, 收藏,
摘要:
只需要两步就可以搞定设置服务器,以我的tomcat为例。一次加入 windows-->preferences->server 添加tomcat服务器项目的Properties -> Java Build Path -> Libraries -> Add Library -> Server Runtime里选入所需的Tomcat参考:http://xiaofengnh.blog.163.com/blog/static/140519349201063043246369/http://hi.baidu.com/bjwanghui2007/item/21fab7d3 阅读全文
Hive输出文件的间隔符
2013-07-10 17:35 by java20130722, 712 阅读, 收藏,
摘要:
1.insert 语法格式为:基本的插入语法:INSERT OVERWRITE TABLE tablename [PARTITON(partcol1=val1,partclo2=val2)]select_statement FROM from_statementinsert overwrite table test_insert select * from test_table;对多个表进行插入操作:FROM fromstatteINSERT OVERWRITE TABLE tablename1 [PARTITON(partcol1=val1,partclo2=val2)]select_sta 阅读全文
Hadoop和HBase集群的JMX监控
2013-07-10 15:39 by java20130722, 2257 阅读, 收藏,
摘要:
说到对Hadoop和HBase的集群监控,大家知道的和用的最多的可能还是第三方的监控工具,cacti,ganglia,zabbix之类的。玩的深一些的,会用zenoss之类的。这些工具确实不错,也能发挥很大的作用,但时间长了总感觉监控粒度还是比较粗,不够详细。毕竟是第三方的监控,即便Hadoop自带了ganglia的接口,也还是觉得不够。其实Hadoop本身是带有监控接口的,各公司的发行版还有自己定制的接口,不过可能知道的人就不太多了。这个不详细的看文档和源码一般是找不到的,属于隐藏属性。事实上,我写的EasyHadoop管理界面里面就用到了这个监控的接口,能够对整个集群有一个比较详细的状态监 阅读全文
Hadoop配置项整理
2013-07-10 11:34 by java20130722, 422 阅读, 收藏,
摘要:
记录一下Hadoop的配置和说明,用到新的配置项会补充进来,不定期更新。以配置文件名划分以hadoop 1.x配置为例core-site.xmlnamevalueDescriptionfs.default.namehdfs://hadoopmaster:9000定义HadoopMaster的URI和端口fs.checkpoint.dir/opt/data/hadoop1/hdfs/namesecondary1定义hadoop的name备份的路径,官方文档说是读取这个,写入dfs.name.dirfs.checkpoint.period1800定义name备份的备份间隔时间,秒为单位,只对snn 阅读全文
实例讲解hadoop中的map/reduce查询(python语言实现)
2013-07-10 10:55 by java20130722, 333 阅读, 收藏,
摘要:
条件,假设你已经装好了hadoop集群,配好了hdfs并可以正常运行。$hadoop dfs -ls /data/dw/explorerFound 1 itemsdrwxrwxrwx - rsync supergroup0 2011-11-30 01:06 /data/dw/explorer/20111129$ hadoop dfs -ls /data/dw/explorer/20111129Found 4 items-rw-r--r-- 3 rsync supergroup 12294748 2011-11-29 21:10 /data/dw/explorer/20111129/explor 阅读全文
Hive SQL使用和数据加载的一点总结
2013-07-10 10:40 by java20130722, 292 阅读, 收藏,
摘要:
Hive 是facebook开源的一个基于hadoop框架的查询工具,也就是说,需要用hive的话,就要先安装hadoop。这次是小结一下最近用hive的心得,经验分享。hadoop和hive,pig,hbase的安装配置以后专门另开个连载说比较好。所以,我假设你已经有hive了。1.字段的数据类型。hive实际上为了数据挖掘的需要,对hive表的字段设置了数据类型,对于经常where的,还可以设置index。数据类型分以下几种STRING 不定长字符串TINYINT 3位长整型数SMALLINT 5位长整型INT 10位整型BIGINT 19位整型FLOAT 浮点数DOUBLE 双精度BOO 阅读全文
MongoDB Map Reduce速度提升20倍的优化宝典
2013-07-09 10:20 by java20130722, 300 阅读, 收藏,
摘要:
自从MongoDB被越来越多的大型关键项目采用后,数据分析也成为了越来越重要的话题。人们似乎已经厌倦了使用不同的软件来进行分析(这都利用到了Hadoop),因为这些方法往往需要大规模的数据传输,而这些成本相当昂贵。MongoDB提供了2种方式来对数据进行分析:Map Reduce(以下简称MR)和聚合框架(Aggregation Framework)。MR非常灵活且易于使用,它可以很好地与分片(sharding)结合使用,并允许大规模输出。尽管在MongoDB v2.4版本中,由于JavaScript引擎从Spider切换到了V8,使得MR的性能有了大幅改进,但是与Agg Framework( 阅读全文
RPC框架系列——Avro
2013-07-08 15:21 by java20130722, 811 阅读, 收藏,
摘要:
1.下载与安装 官方网站:http://avro.apache.org/ 下载地址:http://labs.renren.com/apache-mirror//avro/avro-1.5.1/avro-src-1.5.1.tar.gz 安装之前确保已经装了mavencd /usr/local/srcwget http://labs.renren.com/apache-mirror//avro/avro-1.5.1/avro-src-1.5.1.tar.gztar zxvf avro-src-1.5.1.tar.gzcd avro-src-1.5.1/lang/javamvn clean ... 阅读全文
Solr 3.6.2索引MySQL数据库配置过程
2013-07-08 10:38 by java20130722, 368 阅读, 收藏,
摘要:
前言 下面的步骤开起来比较多,其实总结下来不外乎以下几点给solr配置mysql数据库驱动(步骤2.1)告诉solr,要从一个地方导入数据。(步骤2.2)告诉solr,mysql数据库的 地址,用户名,密码,数据库名等等。(步骤2.3)告诉solr,要为mysql数据库建立那些索引域。(步骤2.4)从mysql数据库中导入数据。(步骤2.6) 后面添加中文分词部分为solr新建一个可分词的数据类型 “text_cn”导入IKAnalyzer分词包将步骤2.4中的数据类型改为“text_cn”。一、 试运行solrcmd 进入solr下的example目录:cd /d apache-so... 阅读全文
IKAnalyzer 独立使用 配置扩展词库
2013-07-08 10:27 by java20130722, 345 阅读, 收藏,
摘要:
网上已有不少教程了。http://www.cnblogs.com/dennisit/archive/2013/04/07/3005847.htmlhttp://blog.sina.com.cn/s/blog_4c9d7da201013wv2.html这里只说两点:dic文件要用 “无dom的UTF-8”格式编码dic文件最好是放在项目的src文件夹下。我的一个范例截图对应的IKAnalyzer.cfg.xml文件设置如下: IK Analyzer 扩展配置 ./dic/scut.dic; ./dic/stopword.dic; 阅读全文
java解析bmp文件
2013-07-04 17:38 by java20130722, 2012 阅读, 收藏,
摘要:
最近想做一个图片查看器,因为bmp的图片简单些,也就从这个入手。 运用的基本知识还是IO的,关键是在于对于“协议”的理解。 一直觉得这些个协议是个很帅气的东西。感觉就像密码一样,你读到了一个文件,你只有知道对方的“加密”方式,你才能正确的解读,否则你拿着也没用。就像你无法用记事本正确地打开一张图片一样,里面只会全是乱码。 言归正传,根据以上的说法,我们首先应该去了解的是BMP文件时如何写的。 BMP文件分为四个部分:文件头信息块,图像描述信息块,颜色表,图像信息区。 文件头信息块 这个部分主要是一些基本的信息,比如,开头两个字节最终读出来是BM,是标识BMP... 阅读全文
Eclipse with C++: "Launch failed. Binary not found."
2013-07-04 14:09 by java20130722, 180 阅读, 收藏,
摘要:
Eclipse with C++: "Launch failed. Binary not found." (windows 7)用Eclipse创建一个Hello world 例子。Build 完成, run的时候出现错误:"Launch failed. Binary not found."--------------解决方法:1. 安装Cygwin 安装方法参考:http://blog.csdn.net/luhuajcdd/article/details/70385042. 配置Cygwin 环境变量3. 右键点击项目(C++ project)红线箭头 阅读全文
无法找到脚本引擎Jscript解决
2013-07-04 11:15 by java20130722, 435 阅读, 收藏,
摘要:
无法找到脚本引擎Jscript解决CScript 错误: 无法找到脚本“InstallWizardForVS2010.js”的脚本引擎“JScript”。目标环境:windows 7 64bit系统操作:安装cocos2dx的vs的template时报的错误----------------------解决方案-----------------------可能是你的脚本库被反注册了,试试: cmd cd c:\windows\system32 regsvr32 jscript.dll regsvr32 vbscript.dll 阅读全文
TCP,IP,HTTP,SOCKET区别和联系
2013-07-03 22:35 by java20130722, 170 阅读, 收藏,
摘要:
物理层-- 数据链路层--网络层-- IP协议传输层-- TCP协议会话层--表示层和应用层-- HTTP协议socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据 如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也 可以自己定义应用层 阅读全文
[置顶] Linux终端中使用上一命令减少键盘输入
2013-07-03 08:43 by java20130722, 415 阅读, 收藏,
摘要:
减少键盘输入,可以大大提高程序员的工作效率,快捷键的使用就是一个很好的例子。程序员经常使用终端。那么在终端上有没有类似的“快捷键”可以提高我们的效率呢?程序员的工作往往是前后相关连的。所以,本文将演示如何使用上一条命令提高工作效率的。1.使用上一条命令的所有参数方法:!*例子:如果我对hello.txt和bye.txt进行了编辑,然后希望使用git add添加这两个文件。就可以使用:git add !*2.使用上一条命令的最后一个参数方法:!$ ALT + . ESC + .其中后面两种方法,terminal中会自动补全3.使用上一条命令中除了最后一个参数的部分方法:!-:例子... 阅读全文
使用cd回到上次编辑的目录
2013-07-02 21:23 by java20130722, 742 阅读, 收藏,
摘要:
在linux下工作的时候,可能会在某个文件夹和其根目录直接不停的切换。比如,我现在在ruby-git这个文件夹下:我cd到.git/hooks这个文件夹下:然后我对某个项目进行了编辑,我想回到原来的ruby-git文件夹,一种方式是cd ../..,这种方式相对来说就比较慢,如果开始cd的目录比较深,则需要输入的更多。另一种方式,可以使用cd -来完成: 阅读全文
自动机编程
2013-07-02 19:23 by java20130722, 1062 阅读, 收藏,
摘要:
摘自 维基百科自动机编程自动机编程(英语:Automata-based programming)是编程范型中的一种,是指程序或其中的部份是以有限状态机(FSM)为模型的程序,有些程序则会用其他型式(也更复杂)的自动机为其模型。有限状态机编程(英语:FSM-based programming)大致上等同于自动机编程,但有限状态机编程专指以有限状态机为模型的程序。自动机编程有以下的二项特征:程序运行的时间中可以清楚划分成数个自动机的步骤(step),每一个步骤即为一个程序区段,有单一的进入点,可以是一个函数或其他程序。若有需要时,程序区段可以再依其状态的不同,划分为子区段。不同步骤的程序区段只能通 阅读全文
源码级强力分析hadoop的RPC机制
2013-07-02 17:02 by java20130722, 223 阅读, 收藏,
摘要:
前言: 这些天一直奔波于长沙和武汉之间,忙着腾讯的笔试、面试,以至于对hadoop RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm)机制分析的博客一直耽搁了下来。昨天晚上胡老大和我抱怨说:最近乱的很。呵呵,老是往武汉跑,能不乱嘛。不过差不多腾讯面试的事就该告一段落了。五一期间,云计算小组的成员们,我们再搞起来吧。记住,我们还有一本hadoop的手册没出来呢。胡老大已经答应给我们写提纲了,在这期 阅读全文
轻松使用Hadoop RPC
2013-07-02 16:52 by java20130722, 176 阅读, 收藏,
摘要:
Hadoop RPC是Hadoop的一个重要部分,提供分布式环境下的对象调用功能,源码在org.apache.hadoop.ipc中。而HBase也几乎完全copy了这部分的源码,只是在配置项上面有所改动。关于Hadoop RPC的机制分析和源码解读,网上已经有许多资料,一搜一大把,这里就不在描述了。本文通过一个小例子,介绍如何调用Hadoop RPC。1. 应用场景Hadoop RPC在整个Hadoop中应用非常广泛,Client、DataNode、NameNode之间的通讯全靠它了。举个例子,我们平时操作HDFS的时候,使用的是FileSystem类,它的内部有个DFSClient对象,这 阅读全文
makfile中.PHONY的认识
2013-07-02 16:12 by java20130722, 4354 阅读, 收藏,
摘要:
install:foo install -m 644 foo /usr/bin.PHONY: install看以上makefile的片段,使用了.PHONY这个目标,下面详细介绍她的用法.来源:点击打开链接.PHONY是一个特殊工作目标(special target) 它用来指定一个假想的工作目标,也就是说它后面的并不是一个实际文件,而且肯定要视为未更新(也就是说条件总是满足,需要处理) PHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突(防止存在和PHONY执行目标的名称相同的文件,虽然在写比较小的makefile工程的. 阅读全文
SqlDataAdapter的使用注意事项
2013-07-02 10:12 by java20130722, 434 阅读, 收藏,
摘要:
转自:http://tankywang.iteye.com/blog/1195910(向原作者致敬)如果使用SqlDataAdapter来查询数据返回给DataSet或者DataTable时需要注意以下几点:1、如果SqlDataAdapter的SelectCommand的连接并没有打开,使用SqlDataAdapter的Fill方法时会自动打开数据库连接,并在方法执行完毕自动关闭连接。如果连接在使用Fill方法之前已经打开,方法执行结束后会保持连接的现有状态,不会关闭连接。2、如果你在同一个Connection上有一系列的连续操作,例如执行多个Fill操作,你应该在最开始使用Connecti 阅读全文
浙公网安备 33010602011771号