Maprduce重写参考

Maprduce数据流走向图

 
流程解释
 
 Input files
  
     功能描述:存储在HDFS中的文件数据
     
 InputFormat
     
     功能描述:1,选取数据对象  2,分割数据文件 3,读取数据对象
     实现参考:
               

        

     重写参考:
               由于InputFormat包含了InputSplit类和RecordReader类的应用,故重写时可以先定义好数据结构后重写InputSplit和RecordReader类进行实现。文章参                           考:
               http://blog.csdn.net/anbo724/article/details/6956286               
                   http://www.blogjava.net/shenh062326/
 
 InputSplits
 
     功能描述:一个map处理掉的数据单元为一个split,默认大小为64M
    重写参考:
               先将函数isSplitable(JobContext context, Path file)的返回值置为TRUE,而后重写List<InputSplit> getSplits(JobContext job),文章参考:
                    http://opqaz.iteye.com/blog/1604486
 
 
RecordReader
 
     功能描述:读取数据对象
     重写参考:
               RecordReader类是文件读取、数据填充的重要类。文章参考:http://blog.csdn.net/anbo724/article/details/6955175
 
map
 
     功能描述:接收键值对<key,value>,根据需求进行相应处理
     重写参考:
               重写void map(Object key, Text value, Context context )函数,参考WordCount例子
 
Partition & Shuffle
 
     功能描述:map处理完成后,数据通过Partition & Shuffle进行合并同类项,将相同的key的数据放在同一个节点
     重写参考:由于Partition类通过hashCode()函数实现相同key存放同一节点,故重写放在WritableComparable接口的hashCode()函数
 
sort
 
     功能描述:根据key进行在单节点下进行排序
 
reduce
 
     功能描述:接收排序完的键值对<key,value>,根据需求进行相应处理
     重写参考:重写void reduce(Text key, Iterable<IntWritable> values, Context context)函数,参考WordCount例子
 
OutputFormat
               
         功能描述:数据输出
         实现参考:
                         

        

          重写参考:重写RecordWriter类。文章参考:http://blog.csdn.net/anbo724/article/details/6956477

Maprduce数据流补充图

   

    

Combiner:
     
     功能描述:单节点内对数据进行合并(诸如WordCount中对相同key进行累加)
    重写参考:
               该类功能可选,如果reduce类能实现自定义合并或者不需要合并功能,该类可以直接跳过:conf.setCombinerClass(Reduce.class);
 
posted @ 2012-09-03 18:52  gchant_lin  阅读(302)  评论(0编辑  收藏  举报