毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

Hadoop自定义输出的代码

更新时间:2014-11-20:  来源:毕业论文

 Hadoop提供了较为丰富的数据输入输出格式,可以满足很多的设计实现,但是在某些时候需要自定义输入输出格式。

数据的输入格式用于描述MapReduce作业的数据输入规范,MapReduce框架依靠数据输入格式完后输入规范检查(比如输入文件目录的检查),对数据文件进行输入分块(InputSpilt)以及提供从输入分快中将数据逐行的读出,并转换为Map过程的输入键值对等功能。Hadoop提供了很多的输入格式,TextInputFormat和KeyValueInputFormat,对于每个输入格式都有与之对应的RecordReader,LineRecordReader和KeyValueLineRecordReader。用户需要自定义输入格式,主要实现InputFormat中的createRecordReader()和getSplit()方法,而在RecordReader中实现getCurrentKey().....


    package com.rpc.nefu; 
     
    import java.io.IOException;    
    import org.apache.hadoop.fs.FSDataInputStream;   
    import org.apache.hadoop.fs.FileSystem;   
    import org.apache.hadoop.fs.Path;    
    import org.apache.hadoop.io.IntWritable;   
    import org.apache.hadoop.io.Text;   
    import org.apache.hadoop.mapreduce.InputSplit;     
    import org.apache.hadoop.mapreduce.RecordReader;   
    import org.apache.hadoop.mapreduce.TaskAttemptContext;   
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;   
    import org.apache.hadoop.util.LineReader;   
    import org.apache.hadoop.mapreduce.lib.input.FileSplit;   
      
    //自定义的输入格式需要 继承FileInputFormat接口 
    public class ZInputFormat extends FileInputFormat<IntWritable,IntWritable>{   
               
            @Override  //实现RecordReader 
            public RecordReader<IntWritable, IntWritable> createRecordReader(   
                    InputSplit split, TaskAttemptContext context)   
                    throws IOException, InterruptedException {   
                return new ZRecordReader();                                                   
            }   
       
            //自定义的数据类型   
            public static class ZRecordReader extends RecordReader<IntWritable,IntWritable>   
            {   
                //data   
                private LineReader in;      //输入流   
                private boolean more = true;//提示后续还有没有数据   
                   
                private IntWritable key = null;   
                private IntWritable value = null;   
                   
                //这三个保存当前读取到位置(即文件中的位置)   
                private long start;   
                private long end;   
                private long pos;   
    &n

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.com 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。