随笔分类 - Hadoop-MapReduce
摘要:由于Hadoop版本混乱多变,Hadoop的版本选择问题一直令很多初级用户苦恼。本文总结了Apache Hadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议。1. Apache Hadoop1.1 Apache版本衍化截至目前(2012年12月23日),...
阅读全文
摘要:现在正式开始编写MapReduce程序。1、专利数据集 这里我们使用专利数据集作为hadoop的输入数据。数据集可以从美国国家经济研究局获得:http://www.nber.org/patents/。两个数据集下载地址分别为:http://www.nber.org/patents/acite75_99.zip http://www.nber.org/patents/apat63_99.zip。2、MapReduce程序的基础模板 大多数MapReduce程序的编写都可以依赖于一个模板或其变种,当写程序是,我们将其修改为我们所希望的样子,而不是重新写一个。 我们通过一个简单的例子来给出一个...
阅读全文
摘要:三、读和写 mapreduce的输入数据一般来自较大的文件,通常为GB或TB级。MapReduce的基本处理原则是将输入数据分割成块,这些块可以在计算机上并行处理。块的大小需要权衡,如果太大,则并行粒度就会较大,如果太小,则启动和停止处理每个块所需时间就会占去很大部分执行时间。 1、InputFormat Hadoop分割与读取输入文件的方式被定义在InputFormat借口的一个实现中,TextInputFormat是InputFormat的默认实现,当你想要一次性读取一行数据,而且数据没有确定的键值时,这种数据结构会很有用。 常用InputFormat类如下 要设置相应的In...
阅读全文
摘要:1、Mapper 一个类要作为mapper必须实现Mapper接口,并且继承MapReduceBase类。 Mapper负责数据处理阶段,形式为Mapper,Mapper只有一个方法map,用于处理一个单独的key/value对。Hadoop预定义了一些非常有用的Mapper 2、Reducer 一个类要作为Reducer必须实现Reducer接口,并且继承MapReduceBase类。当reducer接受来自各个mapper的输出时,将按照key值对输入数据进行排序,并按照排序结果输出给不同的reducer。 同样,Hadoop预定义了一些非常有用的...
阅读全文
摘要:本文提到的程序运行都是在eclipse中进行的,eclipse具体的配置方式可以参考这篇博文http://www.cnblogs.com/flyoung2008/archive/2011/12/09/2281400.html 1、 第一个Hadoop程序——单词统计 import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoo...
阅读全文

浙公网安备 33010602011771号