Tag Archives: Hadoop

定制Hadoop的MapReduce任务的FileOutputFormat

需求:Reduce输出特殊的格式结果
例如:如Reducer的结果,压到Guava的BloomFilter中
import com.google.common.hash.BloomFilter;
import com.google.common.hash.Funnels;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.h[......]

继续阅读

如何拓展Hadoop的InputFormat为其他分隔符

在Hadoop中,常用的TextInputFormat是以换行符作为Record分隔符的。

在实际应用中,我们经常会出现一条Record中包含多行的情况,例如:
<doc>
....
</doc>
此时,需要拓展TextInputFormat以完成这个功能。

先来看一下原始实现:
public class TextInputFormat extends FileInputFormat<LongWritable, Text> {[......]

继续阅读

如何在Hadoop中控制map的个数

转载自:如何在hadoop中控制map的个数

hadoop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数。但是通过这种方式设置map的个数,并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值,最终map的个数,还取决于其他的因素。
为了方便介绍,先来看几个名词:
block_size : hdfs的文件块大小,默认为64M,可以通过参数dfs.block.size设置
total_size[......]

继续阅读