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 |
+-----------------+
위와 같은 맵이 뜨면 성공한 것입니다.
[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>
<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>
<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>
'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 |