摘要: 先来看看TaskAttemptContext的类图: Figure1:TaskAttemptContext类图用户向Hadoop提交Job(作业),Job在JobTracker对象的控制下执行。Job不是独立完成的,Job提交后,Hadoop根据集群的规模将Job分解为若干个Task(任务),然后... 阅读全文
posted @ 2014-04-18 11:09 pei~乐悠悠 阅读(1437) 评论(0) 推荐(0) 编辑
摘要: 当我们在写MapReduce程序的时候,通常,在main函数里,我们会像下面这样做。建立一个Job对象,设置它的JobName,然后配置输入输出路径,设置我们的Mapper类和Reducer类,设置InputFormat和正确的输出类型等等。然后我们会使用job.waitForCompletion(... 阅读全文
posted @ 2014-04-15 20:15 pei~乐悠悠 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 框架简介MapReduce仅仅可以支持Writable做key,value吗?答案是否定的。事实上,一切类型都是支持的,只需满足一个小小的条件:每个类型是以二进制流的形式传输。为此Hadoop提供了一个序列化框架来支持,他们在org.apache.hadoop.io.serializer包中,Wri... 阅读全文
posted @ 2014-04-15 09:30 pei~乐悠悠 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 自定义Writablehadoop虽然已经实现了一些非常有用的Writable,而且你可以使用他们的组合做很多事情,但是如果你想构造一些更加复杂的结果,你可以自定义Writable来达到你的目的,我们以注释的方式对自定义Writable进行讲解(不许说我只帖代码占篇幅哦,姿势写在注释里了):[jav... 阅读全文
posted @ 2014-04-15 09:26 pei~乐悠悠 阅读(372) 评论(0) 推荐(0) 编辑
摘要: java原生类型除char类型以外,所有的原生类型都有对应的Writable类,并且通过get和set方法可以他们的值。IntWritable和LongWritable还有对应的变长VIntWritable和VLongWritable类。固定长度还是变长的选用类似与数据库中的char或者vchar。... 阅读全文
posted @ 2014-04-15 09:22 pei~乐悠悠 阅读(6385) 评论(0) 推荐(0) 编辑
摘要: hadoop的序列化格式hadoop自身的序列化存储格式就是实现了Writable接口的类,他只实现了前面两点,压缩和快速。但是不容易扩展,也不跨语言。我们先来看下Writable接口,Writable接口定义了两个方法:1.将数据写入到二进制流中2.从二进制数据流中读取数据[java]view p... 阅读全文
posted @ 2014-04-15 09:15 pei~乐悠悠 阅读(577) 评论(0) 推荐(0) 编辑
摘要: public interface DataInputDataInput 接口用于从二进制流中读取字节,并重构所有 Java 基本类型数据。同时还提供根据 UTF-8 修改版格式的数据重构 String 的工具。对于此接口中的所有数据读取例程来说,如果在读取到所需字节数的数据之前已经到达文件末尾 (e... 阅读全文
posted @ 2014-04-14 21:17 pei~乐悠悠 阅读(2146) 评论(0) 推荐(0) 编辑
摘要: 1、List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedListList myList = new ArrayList();2、List中可以添加任何对象,包括自己定义的新的类。 class Person{.....}上面定义了一个Person类,下面看好如何使用List... 阅读全文
posted @ 2014-04-14 20:28 pei~乐悠悠 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 平时我们写MapReduce程序的时候,在设置输入格式的时候,总会调用形如job.setInputFormatClass(KeyValueTextInputFormat.class);来保证输入文件按照我们想要的格式被读取。所有的输入格式都继承于InputFormat,这是一个抽象类,其子类有专... 阅读全文
posted @ 2014-04-14 19:34 pei~乐悠悠 阅读(5145) 评论(0) 推荐(0) 编辑
摘要: Hadoop文件系统基本的文件系统命令操作,通过hadoopfs-help可以获取所有的命令的详细帮助文件。Java抽象类org.apache.hadoop.fs.FileSystem定义了hadoop的一个文件系统接口。该类是一个抽象类,通过以下两种静态工厂方法可以过去FileSystem实例:p... 阅读全文
posted @ 2014-04-07 20:08 pei~乐悠悠 阅读(874) 评论(0) 推荐(0) 编辑