MapReduce 의 Job 도구 류 개발
MapReduce 의 Job 도구 류 개발
MapReduce 프로그램 이 Mapper 와 Reducer 드라이버 를 쓸 때 중복 코드 가 많 기 때문에 추출 하여 도구 류 로 쓸 수 있 고, 그 다음 에 MapReduce 프로그램 을 쓸 때 이 도구 류 를 사용 합 니 다.
Job 도구 류 개발
프로그램 코드 는 다음 과 같 습 니 다:
package com.uplooking.bigdata.common.utils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
public class MapReduceJobUtil {
public static Job buildJob(Configuration conf,
Class> jobClazz,
String inputpath,
Class extends InputFormat> inputFormat,
Class extends Mapper> mapperClass,
Class> mapKeyClass,
Class> mapValueClass,
Path outputpath,
Class extends OutputFormat> outputFormat,
Class extends Reducer> reducerClass,
Class> outkeyClass,
Class> outvalueClass) throws IOException {
String jobName = jobClazz.getSimpleName();
Job job = Job.getInstance(conf, jobName);
// job jar
job.setJarByClass(jobClazz);
//
FileInputFormat.setInputPaths(job, inputpath);
job.setInputFormatClass(inputFormat);//
// mapper
job.setMapperClass(mapperClass);
job.setMapOutputKeyClass(mapKeyClass);
job.setMapOutputValueClass(mapValueClass);
//
outputpath.getFileSystem(conf).delete(outputpath, true);// , , .FileAlreadyExistsException
FileOutputFormat.setOutputPath(job, outputpath);
job.setOutputFormatClass(outputFormat);
// reducer, ,
if (null != reducerClass) {
job.setReducerClass(reducerClass);
job.setOutputKeyClass(outkeyClass);
job.setOutputValueClass(outvalueClass);
}
return job;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spark 의 2: 원리 소개Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.