하둡을 이용한 첫 번째 예제 프로그램



하둡에서는 MapRudece 를 이용한 예제로 단어의 겟수를 세는 셈플 예제 소스가 들어있다. wordcount java 프로그램은 txt 파일을 입력으로 받고 결과로는 단어의 겟수를 저장한 파일을 저장한다.


아무런 인수 없이 그냥 wordcount 예제를 실행시켜 본다.


[root@master hadoop-1.0.3]# hadoop jar hadoop-examples-1.0.3.jar wordcount

Usage: wordcount <in> <out>


인수를 지정하라고 메세지가 뜬다. 이제 입력으로 사용할 txt 파일을 하나 만든다.

[root@master hadoop-1.0.3]# cat input  // "hello" 단어가 4개 들어있는 input 파일 생성
hello
hello
hello
hello


[root@master hadoop-1.0.3]# hadoop jar hadoop-examples-1.0.3.jar wordcount input output
12/08/31 00:53:39 INFO util.NativeCodeLoader: Loaded the native-hadoop library // 이러한 메세지들이 쭈욱 뜨면서 실행된다.
12/08/31 00:53:39 INFO input.FileInputFormat: Total input paths to process : 1
12/08/31 00:53:39 WARN snappy.LoadSnappy: Snapnative library not loaded
12/08/31 00:53:39 INFO mapred.JobClient: Running job: job_local_0001
12/08/31 00:53:39 INFO util.ProcessTree: setsid exited with exit code 0

실행이 완료되면 output 디렉토리에 있는 결과파일을 출력해보자!!


[root@master hadoop-1.0.3]# cat output/*

hello   4        // 완료



 hadoop 에서는 독립실행모드 (Standalone) , 가상분산모드 (Pseudo-distributed) , 완전분산모드 (Fully distributed) 이렇게 3가지 모드가 존재한다.


현재 wordcount 예제까지 따라 하셨다면 독립실행모드는 끝난것이다. 독립실행모드는 단일로컬머신에서만 실행되는 환경을 말한다.

따라서 다른 분산된 컴퓨터와 서로 주고 받는 부가 작업이 필요 없으며 이 모드의 목적은 독립적으로 MapReduce 프로그램의 로직을 개발하고 디버깅 하는데 있다.


다음 포스팅 부터는 가상분산모드를 뛰어넘고 완전분산모드로 실행할게요 ^^

완전분산모드가 실제적으로  hadoop 이 동작하는 기능을 모두 갖추고 있기 때문에 가상분산모드는 따로 하지 않아도 된다고 생각함 ^^;;