본문 바로가기

HaDoop...?

Hadoop Multi 환경 구축!

Hadoop Multi 구축!

구축 환경

 

Master 

Slave 

Version 

 Fedora 13 (x86_64)

 Ubuntu 10.04 (x86_64) 

IP 

 192.168.10.2 

 192.168.10.3 

HOSTNAME 

 master 

 slave  



1. Networking 설정, /etc/hosts 에 ip와 domain을 설정합니다. (master/slave 모두)

[root@localhost]# vim /etc/hosts

192.168.10.2 master

192.168.10.3 slave


2. Networking 설정, hostname을 설정합니다. (master/slave 모두)

Ubuntu hostname 설정 파일 위치 : /etc/hostname

Fedora hostname 설정 파일 위치 : /etc/sysconfig/network

설정저장 후 재부팅하고 hostname을 치시면 변경된 이름이 뜹니다.


3. Networking 설정, ssh를 설정합니다. (master/slave 모두)

(ssh 설정 부분에서 상당히 헷갈리고 시행착오가 많았습니다. 이 방법이 정식적인 방법인지는 모르겠으나 필자는 1주일간 안 되던 걸 이렇게 하니까 됐습니다.)

[root@localhost]# ssh-keygen

막 영어로 뭐 설정한다 나옵니다. 그냥 엔터만 칩니다.

    +--[ RSA 2045]----+
    |                          |
    |                          |
    |                          |
    |         o               |
    |     .  E ++0          |
    |    o  888    .        |
    |   ...*    o     **    |
    |  ...00o+.. + o       |
    | oo .=o+.+.o.o      |
    +-----------------+

[출처] ssh 설정|작성자 부탄가스

위와 같은 맵이 뜨면 성공한 것입니다.

[root@localhost]# ls ~/.ssh/

id_rsa  id_rsa.pub  known_hosts

3개의 파일이 뜨면 성공!


다음은 생성한 key를 다른 컴퓨터로 넘겨줍니다. (master에서 생성했으면 slave)

[root@master]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave 

비밀번호 입력하라고 뜹니다. 입력합니다. 별다른 메시지가 안뜰 경우 정상작동 한 겁니다.

잘 복사했는지 확인해봅시다.

[root@master]# ssh slave

Welcome to Ubuntu!

Passwd 입력이 안 뜨면 성공한 겁니다.

만약 Passwd 입력하라고 뜰 경우 .ssh 을 지우고 천천히 다시 해보세요.~

[root@slave]# exit 

다시 나와서 slave에도 위와 같은 설정을 반복해줍니다.


정리하면 

Mater 에서 Slave로

1. [root@master]# ssh-keygen                                                        엔터 엔터 엔터

2. [root@master]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave       Passwd 입력

3. [root@master]# ssh slave                                              Passwd 안묻고 slave 접속 성공


Slave에서 Master로

1. [root@slave]# ssh-keygen                                                         엔터 엔터 엔터

2. [root@slave]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@master      Passwd 입력

3. [root@slave]# ssh master                                             Passwd 안묻고 master 접속 성공


+---------------------------------------------------------------------------------------------------------------+

많은 블로그와 자료들이 master에서만 rsa key 설정하는 방법이 설명되어 있습니다. 하지만 그대로 했는데 저의 경우 hadoop 실행 시 rsa key 설정하라고 뜹니다. 추측으로는 hadoop에서 master->slave 로 단방향으로만 요청을 보내는 건 아닌가 싶습니다. slave->master 즉, 양 방향으로 통신하는 것 같습니다. 대부분이 master에서 key 설정 후 slave로 복사하는데 이렇게 하니까 "rsa key 설정해!!" 라면서 안되더군요. 그래서 slave에서도 key 설정 후 master로 복사했습니다. 인제야 정상 작동합니다. 물론 이 방법이 기존 설치 방법이 아닐 수 도 있습니다. 하지만 정상작동하기에 올립니다.

난 원래 방법대로 하겠다. 하시면 http://blog.naver.com/sugyoo/20153746747 여기서 보신 후 ssh 설정하시면 됩니다. ~


-- 6/11일 수정

hadoop을 공부하면서 알게됐습니다. hadoop에서 의 namenode(이하 NN)와 datanode(이하 DN)의 통신은 ssh로 합니다. NN에서 DN로만 통신을 하는 것이 아니고 DN에서도 heartbeat, blockreport message등을 보냅니다. 그렇기 때문에 양쪽 모두 키를 가지고 있어야 되는 것 같습니다. 예전에 암호학 배울때 기억이 가물가물한데.. 그건 추후 정리해서 수정하겠습니다.

+---------------------------------------------------------------------------------------------------------------+


4. conf/ 아래 있는 hdfs-site.xml core-site.xml mapred-site.xml (master/slave 모두)

Master PC 설정

[root@master]# vim core-site.xml


<configuration>

<property>

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

<value>hdfs://master:9000</value>

</property>

<property>

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

<value>/usr/local/hadoop/tmp/hadoop-${user.name}</value>

</property>

</configuration>



[root@master]# vim hdfs-site.xml

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hdfs/data01,/hdfs/data02</value>
</property>
<property>
<name>dfs.block.size</name>
<value>1048576</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>


[root@master]# vim mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://master:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/hdfs/mapred/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/hdfs/mapred/local</value>
</property>
</configuration>


[root@master]# vim masters
master


[root@master]# vim slaves
master
slave


Slave PC 설정
[root@slave]# vim core-site.xml

<configuration>

<property>

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

<value>hdfs://master:9000</value>

</property>

</configuration>



[root@slave]# vim hdfs-site.xml

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/hdfs/name</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/hdfs/data01,/hdfs/data02</value>

</property>

<property>

<name>dfs.block.size</name>

<value>1048576</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>



[root@slave]# vim mapred-site.xml

<configuration>

<property>

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

<value>hdfs://master/9001</value>

</property>

<property>

<name>mapred.system.dir</name>

<value>/hdfs/mapred/system</value>

</property>

<property>

<name>mapred.local.dir</name>

<value>/hdfs/mapred/local</value>

</property>

</configuration>

모든 설정이 끝난 후 namenode format!
[root@master]# bin/hadoop namenode -format
Y or N -> Y 엔터
12/04/12 19:24:25 INFO common.Storage: Storage directory /hdfs/name has bee     n successfully formatted.
위와같은 말이 뜨면 format 성공!

5. 실행 및 확인
[root@master]# start-all.sh
[root@master]# jps
29441 TaskTracker
28768 NameNode
29144 SecondaryNameNode
29539 Jps
29276 JobTracker
28936 DataNode


[root@slave]# jps
12869 DataNode
12897 TaskTracker
13205 Jps


참고 블로그
hadoop 설치 : http://blog.naver.com/sugyoo/20153890480
ssh 설정 : http://blog.naver.com/sugyoo/20153746747


'HaDoop...?' 카테고리의 다른 글

JDK, ANT 설치  (0) 2012.06.29
hadoop test중 문제점  (0) 2012.05.24
hadoop 실습 examples  (1) 2012.05.03
Fedora Hadoop Compile !!!  (0) 2012.03.28
Fedora Hadoop 설치! 완전기초  (0) 2012.03.27