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

Hadoop自定义输出的代码 第8页

更新时间:2014-11-20:  来源:毕业论文
sp; import org.apache.hadoop.io.compress.CompressionCodec;   
    import org.apache.hadoop.io.compress.GzipCodec;   
    import org.apache.hadoop.mapreduce.OutputCommitter;   
    import org.apache.hadoop.mapreduce.RecordWriter;   
    import org.apache.hadoop.mapreduce.TaskAttemptContext;   
    import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter;   
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;   
    import org.apache.hadoop.util.ReflectionUtils;   
     
    public abstract class multiformat<K extends WritableComparable<?>, V extends Writable>   
            extends FileOutputFormat<K, V> {   
        private MultiRecordWriter writer = null;   
        public RecordWriter<K, V> getRecordWriter(TaskAttemptContext job) throws IOException,   
                InterruptedException {   
            if (writer == null) {   
                writer = new MultiRecordWriter(job, getTaskOutputPath(job));   
            }   
            return writer;   
        }   
        private Path getTaskOutputPath(TaskAttemptContext conf) throws IOException {   
            Path workPath = null;   
            OutputCommitter committer = super.getOutputCommitter(conf);   
            if (committer instanceof FileOutputCommitter) {   
                workPath = ((FileOutputCommitter) committer).getWorkPath();   
            } else {   
                Path outputPath = super.getOutputPath(conf);   
                if (outputPath == null) {   
                    throw new IOException("Undefined job output-path");   
                }   
                workPath = outputPath;   
            }   
            return workPath;   
        }   
        /**通过key, value, conf来确定输出文件名(含扩展名)*/   
        protected abstract String generateFileNameForKeyValue(K key, V value, Configuration conf);   
        public class MultiRecordWriter extends RecordWriter<K, V> {   
            /**RecordWriter的缓存*/   
            private HashMap<String, RecordWriter<K, V>> recordWriters = null;   
            private TaskAttemptContext job = null;   
            /**输出目录*/   
            private Path workPath = null;   
            public MultiRecordWriter(TaskAttemptContext job, Path workPath) {   
   &nbs

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

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

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