1990년 스티브 잡스 인터뷰 영상

스티브 잡스가 1990년에 인터뷰를 했던 영상입니다. 1990년에는 인터넷이 상용화 되기 5년전임에도 불구하고 잡스의 생각은 참으로 놀랍습니다.




GenericOptionsParser 활용(ToolRunner)

Command Line에서 Hadoop job을 실행할 때, 아래와 같은 경고 메세지를 자주 본다면 GenericOptionsParser를 활용해 보는 것을 고려해보는 것이 좋다.


WARN mapreduce.JobSubmitter: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.


GenericOptionsParser는 아래와 같은 Hadoop framework에서 사용되는 option을 분석해서 처리해준다. (Configuration에 세팅)


 Option

 Description

 -conf <configuration file>

 specify a configuration file

 -D <property=value>

 use value for given property

 -fs <local|namenode:port>

 specify a namenode

 -jt <local|jobtracker:port> 

specify a job tracker 

 -files <comma separated list of files>

 specify comma separated files to be copied to the map reduce cluster

 -libjars <comma separated list of jars>

specify comma separated jar files to include in the classpath. 

 -archives <comma separated list of archives>

specify comma separated archives to be unarchived on the compute machines. 



아래 GenericOptionsParser 사용 예를 보자.


public static void main(String[] args) {
    Configuration conf = new Configuration();
    GenericOptionsParser optionParser = new GenericOptionsParser(conf, args);

    String[] remainingArgs = parser.getRemainingArgs();
}


생성자에 Configuration과 args를 파라메터로 넘겨주면 위에서 설명한 옵션을 세팅해 주고, 나머지 argument를 getRemainingArgs 메소드로 받을 수 있다. 


하지만 GenericOptionsParser를 직접 사용하는 것보다는 ToolRunner를 사용해서 자동으로 설정하게 끔 하는 것이 더 좋다.


public class ConfigurationPrinter extends Configured implements Tool {
  
    @Override
    public int run(String[] args) throws Exception {
        Configuration conf = getConf();
        for (Entry entry: conf) {
            System.out.printf("%s=%s\n", entry.getKey(), entry.getValue());
        }
        return 0;
    }

    public static void main(String[] args) throws Exception {
        int exitCode = ToolRunner.run(new ConfigurationPrinter(), args);
        System.exit(exitCode);
    }
}


ToolRunner.run 메소드로 ConfigurationPrinter 클래스를 실행하는 예제이다. ToolRunner.run 메소드를 사용하려면 Configured 를 상속받고 Tool 을 implements 해야 한다.


특히 -conf 옵션이나 -D 옵션은 파라메터를 설정할 때 편리하게 사용할 수 있다.


% hadoop ConfigurationPrinter -D color=yellow | grep color

color=yellow


위와 같이 실행 했을 때, 별도의 parsing 하는 작업 없이 color=yellow라는 값을 Configuration에 설정할 수 있다.



관련글

2009/09/04 - [Programming/hadoop] - Hadoop 실행시 jar 파일 추가하기


조너선 아이브 과거 사진






조너선 아이브 [Jonathan Paul "Jony" Ive] - 영국의 디자이너이자 기업가로, 2012년 현재 애플의 산업디자인부문 부사장