'URLCat'에 해당되는 글 1건

  1. 2012.09.10 Hadoop HDFS 사용자 생성 파일 테스트
Cloud2012.09.10 17:56

오랜만에 다시 Hadoop을 테스트하기 위해 Shell 창을 열어 Hadoop명령어를 치려니 왠지 뭔가 생소하게 느껴지는 것이 새롭다. 오늘은 그 동안 삽질하면서 설치한 Hadoop에 책에서 나오는 코딩 된 HDFS 소스 파일들을 컴파일하고 실행하는 방법을 남겨보고자 한다.

 

그리고, 이번 테스트를 하면서 앞에서 실수한 부분을 다시 수정하고자 한다. 앞에서 하둡을 설치할 때 나는 자바 버전을 1.7 버전으로 설치를 하였었다. 그런데, 자바파일 컴파일을 하는 과정에서 컴파일이 되지 않고 컴파일은 되었다 할지라도 실행과정에서 java version 이 맞지 않는다는 오류를 발견할 수 있었다. 그래서, 하둡 홈폴더에 있는 build.xml 파일을 확인해서 보니, 자바버전이 1.6 버전으로 되어 있다는 것을 알았고, 설치되어 있는 1.7 버전을 삭제하고 다시 1.6버전으로 재 설치하였다. 그리고 나서 다시 컴파일을 하고 실행을 하니 정상적으로 테스트해 볼 수 있었다.

 

우선, JAVA로 된 샘플 소스를 코딩 해야한다. 다음에 나와 있는 소스 샘플은 한빛미디어 “Hadoop 완벽가이드에 있는 URLCat이라는 소스로써 복사해서 붙여도 무방은 하나 그래도 이왕 공부 하는거 하나하나 타이핑을 해 보면 더 좋지 않을까?


1   import java.io.InputStream;

2   import java.net.URL;

3    

4   import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;

5   import org.apache.hadoop.io.IOUtils;

6    

7   public class URLCat {

8    

9           static {

10                  URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());

11          }

12   

13          public static void main(String[] args) throws Exception {

14                  InputStream in = null;

15                  try {

16                          System.out.println(args[0]);

17                          in = new URL(args[0]).openStream();

18                          IOUtils.copyBytes(in, System.out, 4096, false);

19                  } finally {

20                          IOUtils.closeStream(in);

21                  }

22          }

23  }


이렇게 해서 타이핑 한 소스를 하둡이 설치되어 있는 소스 폴더(사용자 임의 지정 가능)에 옮긴다. Vi 에디터를 통해 간단하게 복사해서 붙여넣기 하고 저장하면 끝난다.


~!! 이번에는 컴파일을 한번 해 보도록 하자. 아주 중요하다. 책에 나오지 않는다. 한국 웹사이트나 블로그에도 안 나온다. 해외사이트에서도 찾기 힘들다. 일본 사이트에서 가서 겨우겨우 찾아서 볼 수 있었다.

 

우선, 하둡 홈 폴더에 들어가서 build 폴더를 생성한다.

$ cd hadoop-1.0.3

$ mkdir build

$ cd build

$ mkdir classes

 

생성이 되었으면 이제 컴파일을 해보자. 컴파일 공식은 다음과 같다. 우선 클래스 패스를 지정하자. Hadoop을 사용하여 소스를 코딩 했다면 반드시 Hadoop 홈폴더에 있는 hadoop-core 파일이 필요하다. 그러므로 클래스 패스는 하둡 홈에 있는 hadoop-core 파일을 써주고, 컴파일 된 클래스 파일이 저장될 위치를 –d 옵션을 통해 지정해 준다. 이 위치는 아까 위에서 생성한 build 폴더 밑에 classes 폴더로 지정하면 된다. 다음은 컴파일 하고자 하는 자바파일명을 써주면 된다.


$ javac –classpath $HADOOP_HOME/hadoop-core-1.0.3.jar –d [class_path] [filename].java


그럼 컴파일 예제를 한번 보자.


이제 실행을 한번 해 볼까? 다음과 같이 입력하자.

$ hadoop URLCat hdfs://localhost/[경로]/[파일명]

 

나 같은 경우에는 localhost로 하지 않고 IP를 지정해주었기 때문에 지정한 IP PortURL 경로를 잡아주었다. 하둡의 웹 인터페이스로 미리 하둡에 올려둔 파일의 경로를 알아보자.


이제 테스트를 해 보면 파일에 있는 내용이 콘솔창으로 보일 것이다.



요즘 꼭 지켜줘야 할 것 같은 참조한 사이트나 블로그의 URL을 꼭 남겨주는 센스라고나 할까? 참조 블로그를 남겨본다.


참조 블로그 : http://techme.lofter.com/post/ccd6e_1dd8c8

http://caoruntao.iteye.com/blog/996120

Posted by 나리 짱!!! naleejang