얼마전 윈도우 환경하에서 VM웨어로 리눅스를 설치하고 싱글노드 Hadoop을 설치하고 테스트 한적이 있다. 

Hadoop은 여러 노드들을 붙여서 분산처리하기 위해서 나온 것인데, 환경이 안되다 보니 공부를 순수하게 학습 목적으로 테스트하였는데, 벌써부터 기억이 가물거려 그동안 봉인후 꺼내보지 않았던, 아주 오래된 노트북에 우분투를 설치하고, 데스크탑에 VM 리눅스환경에서 2 node hadoop을 설치하였다.


아래는 다음에 설치하면 까먹지 않기 위한 설치방법에 대한 정리이다.


우선 설치가 완성된후 jps를 돌린 상태 스샷.

1. master node(master,slave02)




2. slave01 node




host파일 내용은 아래와 같이 모든 노드에 동일하게 사용하여야 한다.(데스크탑을 사용하는 master node는 slave02의 역활도 함)

192.168.0.20    master

192.168.0.21    slave01

192.168.0.20    slave02



설치 방법

1. 준비물



2. hadoop용 계정 추가

$sudo adduser hadoop

 


3. hadoop이 사용할 디렉토리 구조 만들기

/home/hadoop/temp --> temp 용도의 디렉토리(hadoop을 실행하게 되면 map,reduce 하는 과정에 사용할  temp용도의 디렉토리)


4. ssh 키생성후 authorized_keys 로 등록하기(비밀번호 입력없이 바로 접속할수 있다)

hadoop@ubuntu:~$ssh-keygen -t rsa -P ""

hadoop@ubuntu:~$cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

hadoop@ubuntu:~$scp ~/.ssh/authorized_keys hadoop@[slave 서버들]:~/.ssh/


5. hadoop package 다운로드후 설치(압축풀기)

hadoop@ubuntu:~$tar xvfz hadoop-1.0.4.tar.gz

hadoop@ubuntu:~$mkdir bin

hadoop@ubuntu:~$mv hadoop-1.0.4 ./bin/

hadoop@ubuntu:~$cd bin

hadoop@ubuntu:~$ln -s hadoop-1.0.4 hadoop


6. JAVA-JDK설치하기

hadoop@ubuntu:~$./jdk-6u37-linux-i586.bin

hadoop@ubuntu:~$sudo mv jdk1.6.0_37 /usr/local/

hadoop@ubuntu:~$cd /usr/local

hadoop@ubuntu:~$sudo chown -R root:root /usr/local/jdk1.6.0_37

hadoop@ubuntu:~$sudo ln -s jdk1.6.0_37 java-6-sun


7. hadoop 환경 설정 파일 수정해주기

1) java home 설정해주기(hadoop-env.h)

hadoop@ubuntu:~/bin/hadoop/conf$ cat hadoop-env.sh 

# Set Hadoop-specific environment variables here.


# The only required environment variable is JAVA_HOME.  All others are

# optional.  When running a distributed configuration it is best to

# set JAVA_HOME in this file, so that it is correctly defined on

# remote nodes.


# The java implementation to use.  Required.

export JAVA_HOME=/usr/local/java-6-sun


2)각종 site 파일들 수정해주기(core-site.xml, hdfs-site.xml, mapred-site.xml)


hadoop@ubuntu:~/bin/hadoop/conf$ cat core-site.xml 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->


<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://master:10001</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/temp</value>

</property>

</configuration>


hadoop@ubuntu:~/bin/hadoop/conf$ cat hdfs-site.xml 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->


<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>


hadoop@ubuntu:~/bin/hadoop/conf$ cat mapred-site.xml 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->


<configuration>

<property>

<name>mapred.job.tracker</name>

<value>master:10002</value>

</property>

</configuration>


8. hadoop format 하기 

hadoop@ubuntu:~/bin/hadoop$ bin/hadoop namenode -format

12/11/07 06:32:29 INFO namenode.NameNode: STARTUP_MSG: 

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG:   host = ubuntu/127.0.1.1

STARTUP_MSG:   args = [-format]

STARTUP_MSG:   version = 1.0.4

STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct  3 05:13:58 UTC 2012

************************************************************/

12/11/07 06:32:29 INFO util.GSet: VM type       = 32-bit

12/11/07 06:32:29 INFO util.GSet: 2% max memory = 19.33375 MB

12/11/07 06:32:29 INFO util.GSet: capacity      = 2^22 = 4194304 entries

12/11/07 06:32:29 INFO util.GSet: recommended=4194304, actual=4194304

12/11/07 06:32:30 INFO namenode.FSNamesystem: fsOwner=hadoop

12/11/07 06:32:30 INFO namenode.FSNamesystem: supergroup=supergroup

12/11/07 06:32:30 INFO namenode.FSNamesystem: isPermissionEnabled=true

12/11/07 06:32:30 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100

12/11/07 06:32:30 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)

12/11/07 06:32:30 INFO namenode.NameNode: Caching file names occuring more than 10 times 

12/11/07 06:32:31 INFO common.Storage: Image file of size 112 saved in 0 seconds.

12/11/07 06:32:31 INFO common.Storage: Storage directory /home/hadoop/temp/dfs/name has been successfully formatted.

12/11/07 06:32:31 INFO namenode.NameNode: SHUTDOWN_MSG: 

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1

************************************************************/


9. hadoop start(반드시 master 노드에서 시작)

hadoop@ubuntu:~/bin/hadoop/bin$ ./start-all.sh 

starting namenode, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-namenode-ubuntu.out

slave02: starting datanode, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-datanode-ubuntu.out

slave01: starting datanode, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-datanode-nuke-Satellite-A10.out

master: starting secondarynamenode, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-secondarynamenode-ubuntu.out

starting jobtracker, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-jobtracker-ubuntu.out

slave02: starting tasktracker, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-tasktracker-ubuntu.out

slave01: starting tasktracker, logging to /home/hadoop/bin/hadoop-1.0.4/libexec/../logs/hadoop-hadoop-tasktracker-nuke-Satellite-A10.out

hadoop@ubuntu:~/bin/hadoop/bin$ /usr/local/java-6-sun/bin/jps 

5471 NameNode

6010 JobTracker

6316 Jps

5710 DataNode

5927 SecondaryNameNode

6239 TaskTracker


다음 글 부터는 하둡을 사용한 예제 코드들을 올릴 예정.


저작자 표시
신고

+ Recent posts

티스토리 툴바