'Hadoop'에 해당되는 글 2건

  1. 2012.09.10 Hadoop HDFS 사용자 생성 파일 테스트
  2. 2012.08.23 VM Ubuntu에 Hadoop(Stand-Alone) 설치하기 (2)
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
Cloud2012.08.23 15:27

작년 10월 무렵에 하둡을 한번 설치를 해 본적이 있었다. 그때는 메뉴얼도 잘 안나와 있고, 무슨 소리인지 잘 몰라서 고개만 갸우뚱거리다가 그냥 넘어갔는데, 요번에 하둡을 다시 설치해 볼일이 생겨 구글링을 해 보니 작년하고 다르게 쉬운 메뉴얼들이 많이 나와 있었다. 그래서, 가장 간단하면서도 빠르고 쉽게 하둡을 설치할 수 있는 방법을 글로 적어보도록 하겠다.


대부분의 리눅스에는 OpenJDK가 설치되어 있다. 

하둡은 자바이기 때문에, 자바를 함께 설치를 해야하는데 sun jdk가 가장 궁합이 잘 맞는다고 한다.


그래서, 이번에는 Ubuntu에 자바 설치하는 것부터 삽질해 보았다.


1.     Sun jdk1.7을 설치한다.  Oracle jdk7을 설치해야하는줄 알았는데, 나중에 프로그래밍을 하는데 Java Version이 안 맞는다는 오류가 발생을 했다. 그래서 설치한 jdk7을 다시 다 삭제를 해야만 했다. ㅠㅠ 그래서 sun-java6-jdk를 설치해야 하는데 기가막히게 설명을 잘 해놓은 블로그를 찾았다. (http://ammoguy.springnote.com/pages/354463) 여기 들어가면 완전 친절하게 써 놓았으니 참고해서 자바를 설치하길 바란다.

$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt-get update

$ sudo apt-get install oracle-jdk7-installer 

 

2.     http://ftp.daum.net/apache/hadoop/common/stable/ 에서 hadoop-1.0.3.tar.gz 을 다운로드 받아 압축을 푼다.




3.     $HOME 디렉토리의 .profile을 열어 다음과 같은 내용을 추가한다.

export JAVA_HOME="/usr/lib/jvm/default-java"

export HADOOP_HOME="/home/nalee/hadoop-1.0.3"

 




4.     다음과 같은 명령어로 터미널창의 환경변수를 적용해 준다.

$ source ~/.profile 

 

5.     Hadoop Home > conf > hadoop_env.sh 파일을 열어서 4번에서 입력한 것처럼 JAVA_HOME을 다음과 같이 수정한다.

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

to

export JAVA_HOME=/usr/lib/jvm/default-java


6.     이제 간단하게 테스트를 한번 해 보자

-      Hadoop Version 알아보기




-      간단한 데이터 수집해 보기

$ mkdir input 

$ cp conf/*.xml input 

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 

$ cat output/*


참조 블로그 :

http://crazia.tistory.com/742

http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html

Posted by 나리 짱!!! naleejang