You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

MapReduce Job을 실행하는 Driver가 많은 경우 실행시 Package 명 + Class 명을 모두 넣어야 하는 불편함을 해결하기 위해서 간단하게 Alias 만으로 Driver를 지정할 수 있도록 하는 Hadoop 에서 제공하는 Driver입니다.

import com.yourcompany.hadoop.mapreduce.aggregate.UnionDriver;
import io.datadynamics.bigdata.mapreduce.core.Constants;
import org.apache.hadoop.util.ProgramDriver;

/**
 * 모든 MapReduce를 실행하기 위한 Alias를 제공하는 Program Driver.
 *
 * @author Data Dynamics
 * @since 0.1
 */
public class MapReduceDriver {

    public static void main(String argv[]) {
        ProgramDriver programDriver = new ProgramDriver();
        try {
            programDriver.addClass("union", UnionDriver.class, "작은 파일들을 HDFS Block 단위로 묶는 MapReduce Job");
            programDriver.driver(argv);
            System.exit(0);
        } catch (Throwable e) {
            e.printStackTrace();
            System.exit(-1);
        }
    }
}

이 Program Driver를 제대로 사용하려면 JAR 파일 패키징시 Manifest 파일의 Main Class로 지정해야 하며 Maven에서 다음과 같이 JAR 플러그인을 설정하여 기본 실행 클래스로 지정할 수 있습니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.yourcompany.hadoop.mapreduce.MapReduceDriver</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>


  • No labels