摘要: 原文地址:http://yangjunfeng.iteye.com/blog/400085注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。 注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。 @Override表示当前方法是覆盖父类的方法。 @Deprecated表示当前元素是不赞成使用的。 @SuppressWarnings表示关闭一些不当的编译器警告信息。下面是一个定义注解的实例package Test_. 阅读全文
posted @ 2012-05-17 15:00 daniel.deng 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文对SQL语言中的自身连接进行了详细的论述,讨论了自身连接存在的必要性,并通过实例对SQL中自身连接查询进行了深入的剖析。 关键词:SQL 自连接 连接查询 一、连接查询 在SQL中,如果一个查询同时涉及到两个以上的表,那么这种查询就称为连接查询。连接有多种形式,有等值连接、自然连接、非等值连接、外连接、复合条件连接和自身连接等。 大多数的连接,都是涉及到不同的表,以下面的SQL代码为例: SELECT Student.SNumber, Student.SName, StuCour.* FROM Student, StuCour WHERE Student.SNu... 阅读全文
posted @ 2012-03-20 10:26 daniel.deng 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClient jc = new JobClient(job); …… //调用submitJob来提交一个任务 running = jc.submitJob(job); JobID jobId = running.getID(); …… while (true) { 阅读全文
posted @ 2012-03-15 21:34 daniel.deng 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 一、文件的打开1.1、客户端HDFS打开一个文件,需要在客户端调用DistributedFileSystem.open(Path f, int bufferSize),其实现为:public FSDataInputStream open(Path f, int bufferSize) throws IOException { return new DFSClient.DFSDataInputStream( dfs.open(getPathName(f), bufferSize, verifyChecksum, statistics));}其中dfs为DistributedFileSystem的 阅读全文
posted @ 2012-03-15 21:31 daniel.deng 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一、HDFS的基本概念1.1、数据块(block)HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。1.2、元数据节点(Namenode)和数据节点(datanode)元数据节点用来管理文件系统的命名空间其将所有的文件和文件夹的元数据保存在一个文件系统树中。这些信息也会在硬盘上保存成以下文件:命名空间镜像(namespace image)及修改日志(edit lo 阅读全文
posted @ 2012-03-15 21:18 daniel.deng 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 上面已经提到,job是统一由JobTracker来调度的,具体的Task分发给各个TaskTracker节点来执行。下面通过源码来详细解析执行过程,首先先从JobTracker收到JobClient的提交请求开始。2.3.1 JobTracker初始化Job和Task队列过程2.3.1.1 JobTracker.submitJob() 收到请求当JobTracker接收到新的job请求(即submitJob()函数被调用)后,会创建一个JobInProgress对象并通过它来管理和调度任务。JobInProgress在创建的时候会初始化一系列与任务有关的参数,如job jar的位置(会把它从H 阅读全文
posted @ 2012-03-09 23:19 daniel.deng 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 总体结构Mapper和Reducer 运行于Hadoop的MapReduce应用程序最基本的组成部分包括一个Mapper和一个Reducer类,以及一个创建JobConf的执行程序,在一些应用中还可以包括一个Combiner类,它实际也是Reducer的实现。JobTracker和TaskTracker 它们都是由一个master服务JobTracker和多个运行于多个节点的slaver服务TaskTracker两个类提供的服务调度的。master负责调度job的每一个子任务task运行于slave上,并监控它们,如果发现有失败的task就重新运行它,slave则负责直接执行每一个task。T 阅读全文
posted @ 2012-03-09 23:12 daniel.deng 阅读(361) 评论(0) 推荐(0) 编辑
摘要: Hadoop还实现了MapReduce分布式计算模型。MapReduce将应用程序的工作分解成很多小的工作小块(small blocks of work)。HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些数据了。如下图所示:Hadoop API被分成(divide into)如下几种主要的包(package) org.apache.hadoop.conf 定义了系统参数的配置文件处理API。 org.apach 阅读全文
posted @ 2012-03-09 22:45 daniel.deng 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 网上搜了一些中文的,总是只有一小部分,对于我们这些菜鸟来说,根本没发用,更可恶的是,搜到的内容都是一样的,哎,抄来抄去,估计都没试过到底能不能用就贴上去了。后来找了一个英文的:http://ebiquity.umbc.edu/Tutorials/Hadoop/00%20-%20Intro.html 非常的全面,一步一步的教,我这翻译一下大致的步骤。一,准备Java 1.6 Eclipse Europa 3.3.2 hadoop-0.19.2Java一定要1.6,Eclipse好像不能用3.4以上,hadoop用0.19.2,原文用0.19.1,现在没的下了。0.20.0不能用,我试过了,没法启 阅读全文
posted @ 2012-03-09 09:01 daniel.deng 阅读(752) 评论(0) 推荐(0) 编辑
摘要: 意图:提供一个创建一些列相关或相互依赖对象的接口,而无需指定他们具体的类。适用性:1)一个系统要独立与它的产品的创建、组合和表示时。2)一个系统要由多个产品系列中的一个来配置时。3)当你要强调一系列相关的产品对象的设计以便进行联合使用时。4)当你提供一个产品类库,而只想显示他们的接口而不是实现时。结构:效果:1)分离了具体的类。Abstract Factory模式帮助你控制一个应用创建的对象的类。因为一个工厂封装创建产品对象的责任和过程,它将客户与类的实现分类。客户通过他们的抽象接口操纵实例。产品的类名也在具体工厂的实现中被分离;它不出现在客户代码中。2)它使得易于交换产品系列。一个具体的工厂 阅读全文
posted @ 2011-07-20 15:46 daniel.deng 阅读(197) 评论(0) 推荐(0) 编辑