08 2013 档案
海量数据处理
摘要:基本方法1、Hash法参考:常见hash算法的原理常见的Hash算法General Purpose Hash Function Algorithms2、Bit-map法利用Bit-map方法解决海量数据的查重和去重问题。/*已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码个数*/ #include #include #include using namespace std; #define minNumber 10000000#define maxNumber 99999999int N = (maxNumber-minNumber+1); //90000000#define
阅读全文
Java NIO原理分析
摘要:Java IO在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per-connection”。这是一种基于阻塞式I/O的多线程模型。在该模型中,Server为每个Client连接创建一个处理线程,每个处理线程阻塞式等待可能达到的数据,一旦数据到达,则立即处理请求、返回处理结果并再次进入等待状态。由于每个Client连接有一个单独的处理线程为其服务,因此可保证良好的响应时间。但当系统负载增大(并发请求增多)时,Server端需要的线程数会增加,这将成为
阅读全文
彻底理解JAVA动态代理
摘要:代理设计模式定义:为其他对象提供一种代理以控制对这个对象的访问。代理模式的结构如下图所示。动态代理使用java动态代理机制以巧妙的方式实现了代理模式的设计理念。代理模式示例代码public interface Subject { public void doSomething(); } public class RealSubject implements Subject { public void doSomething() { System.out.println( "call doSomething()" ); } } ...
阅读全文
基于Eclipse搭建Hadoop源码环境
摘要:Hadoop使用ant+ivy组织工程,无法直接导入Eclipse中。本文将介绍如何基于Eclipse搭建Hadoop源码环境。准备工作本文使用的操作系统为CentOS。需要的软件版本:hadoop-1.0.4、jdk-1.6.0_43、ant-1.9.2、eclipse3.6。安装与配置JDK安装Eclipse安装与配置Ant下载Hadoop源码以上工作就不细说了,这些没啥难度,注意要配置好jdk和ant的环境变量。编译源码进入hadoop项目的根目录,在bash中执行ant eclipse。命令行结束之后,就可以向Eclipse中导入工程。导入工程File -> Import -&g
阅读全文
事件驱动
摘要:这里不得不说《冒号课堂——编程范式与OOP思想》真是一本好书,之前已经看过一遍。这几天读Spring源码,发现Spring经常用到回调,对这个概念有些模糊了,于是把这本书翻出来看,算是温故知新。事件驱动式模型事件是程序中令人关注的信息状态上的变化。在基于事件驱动的系统中,事件包括内建事件与用户自定义事件,其中内建事件又分为底层事件和语义事件。此外,事件还有自然事件与合成事件之分。上图是典型的事件驱动模型。事件处理器事先在关注的事件源上注册,事件源不定期地发表事件对象,经过事件管理器的转化(translate)、合并(coalesce)、排队(enqueue)、分派(dispatch)等集中处理
阅读全文