어제는 머신에 Hadaoop을 싱글모드로 설치해 보았고, 오늘은 Hadoop source를 수정하여 컴파일해볼 것이다. 간단하게 System.out.println() 으로 찍어볼 것이다.
우선 컴파일할 때 크게 두 종류로 나눈다. Eclipse를 통해서 컴파일 방법이 있고, 그냥 vim에서 ant만 설정해서 컴파일하는 방법이 있다. 물론 Eclipse에서도 ant를 써서 컴파일하긴 하는데. GNOME을 안 깔아서 vim으로 할 것이다.
1. Ant 설치 및 설정
Ant를 설치하기 전에 Ant를 나도 몰라서. 그냥 hadoop/bin 안에 있는 스크립트인 줄 알았는데 아니었다. 간단히 뭐구나~ 라고만 알고 넘어가자.
Ant는 Java기반인 빌드 도구이다. 요즘은 Eclipse라는 좋은 IDE가 있어서 Ant를 사용하지 않아도 알아서 다 해준다.
하지만 Eclipse를 사용하지 않을 때 혹은 못할 때 Ant를 사용하게 되면 아주 편리하게 컴파일을 할 수 있다.
( 인용 : http://pandora.tistory.com/36 )
정말 간단하게 ant를 설치하고 컴파일하려는 프로젝트의 홈 디렉터리에 가서 ant 명령어만 치면 프로젝트 홈 디렉터리에 있는 build.xml에 정의된 정책에 따라 컴파일한다. 고로 Ant깔고 build.xml 만져주고 jar 명령어만 치면 된다.
본격적으로 설치를 해보자.
ㄱ. http://ant.apache.org/bindownload.cgi 에 가서 아무거나 다운받는다. ( wget을 쓰던 WinScp를 쓰던 마음대로. )
ㄴ. [root@localhost]# tar xvfz apache-ant-1.8.3.tar.gz ( 압축 해제 )
ㄷ. [root@localhost]# mv apache-ant-1.8.3 /usr/local/ant ( 편의상 디렉터리를 ant로 바꾸고 local 밑으로 이동 )
ㄹ. [root@localhost]# vim /etc/profile 에서 설정
** 어제 Fedora Hadoop 설치에 JDK 설치하면서 환경변수를 설정하였다. 그 상태에서 추가한다.
=================================================================
JAVA_HOME="/usr/lib/jvm/sun-java6-jdk"
export JAVA_HOME
ANT_HOME="usr/local/ant" ( 이 줄은 추가 )
export ANT_HOME ( 이 줄도 추가 )
#PATH=$JAVA_HOME/bin:$PATH ( 기존 줄 주석 )
PATH=$PAHT:$ANT_HOME/bin ( 주석하고 새로 추가 )
export PATH
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
=================================================================
[root@localhost]# source /etc/profile
[root@localhost]# ant -version
Apache Ant (TM) version 1.8.3 compiled on February 26 2012 ( 나오면 성공, 안 나오면 다시 )
2. Hadoop Source 수정 후 컴파일
DataNode.java는 hadoop/src/hdfs/org/apache/hadoop/hdfs/server/datanode 밑에 있다.
vim으로 오픈해서 DataNode 생성자와 startDataNode에 println()으로 찍어보자
( 프로그래밍은 기본적으로 할 줄 아는 조건에 코딩 부분은 생략 )
자 수정했으면 .. 다시 Hadoop 홈으로 돌아와서 시작
ㄱ. [root@localhost]# ant jar ( 처음 시작은 조금 걸린다 build.xml의 정책대로 컴파일한다. )
컴파일이 다 되면 build 라는 디렉터리가 하나 생기고 그 안에 hadoop-0.20.3-dev-core.jar 뭐 이런 비슷한 게 생긴다
그 jar 파일을 hadoop 홈에 hadoop-0.20.2-core.jar로 이름 바꿔 옮기고 기존에 jar는 혹시 모르니 다른 이름으로 바꿔놓는다.
ㄴ. [root@localhost]# mv build/hadoop-0.20.3-dev-core.jar ./hadoop-0.20.2-core.jar
ㄷ. [root@localhost]# bin/hadoop-daemon.sh start datanode
Start DataNode kth ------------------------
StartDataNode !!!!
라고 찍혔다... 그냥 헬로월드 찍을것을.. 올리고 나니 밀려오는 창피함...
어쨌든 성공했다. Ubuntu에서 할 땐 진짜 말도 안 되는 오류들로 고생했는데.. Fedora는 잘된다.
Debian 계열 OS는 나랑 안 맞는가보다 ;; VPN 프로젝트 할 때도 Redhat 기반에서만 잘 돌아갔다.
p.s : 으외로 삽질할 줄 알았는데 빨리 끝났다. 이젠 Datanode와 NameNode, HDFS 구조 분석해서 코딩하면 된다.
'HaDoop...?' 카테고리의 다른 글
JDK, ANT 설치 (0) | 2012.06.29 |
---|---|
hadoop test중 문제점 (0) | 2012.05.24 |
hadoop 실습 examples (1) | 2012.05.03 |
Hadoop Multi 환경 구축! (0) | 2012.04.12 |
Fedora Hadoop 설치! 완전기초 (0) | 2012.03.27 |