본문 바로가기

IT for developer/Hadoop+Nosql

하둡 설치 2


분산모드로 설치해 보기

리눅스 서버(CentOs 5.6) - 마스터
윈도우 (cygwin) - 슬레이브

마스터 설정


리눅스에 jdk 설치 하자. 

기존에 설치되어 있는 jdk도 있지만 lib 폴더 설정등이 불편해서 자바 홈피에서 RPM 버전을 받아서 설치했다.


vi /etc/profile.d/java.sh 에서 경로 변경.

export JAVA_HOME=/usr/java/jdk1.6.0_26
export PATH=$JAVA_HOME/bin:$PATH
 
source /etc/profile.d/java.sh


/etc/hosts 파일을 변경하자.

192.168.1.1  master
192.168.1.2 slave1



192.168.1.1 - Linux 아이피
192.168.1.2 - 윈도우즈 아이피


ssh 설정은 리눅스(마스터)에서 키를 생성하고 이를 윈도우즈(슬레이브)에 전달하도록 한다.

$ssh-keygen -t ras
$cat id_rsa.pub >> authorized_keys
$scp .ssh/authorized_keys hadoop@slave1:/home/inking/.ssh/authorized_keys

간혹 authorized_keys를 슬레이브에 복사했는데도 마스터에서 슬레이브로 접속할 때 비밀번호를 물어보는 경우가 있다.

이때는 슬레이브의 authorized_keys 파일권한을 변경하자.
$chmod 0600 authorized_keys 

설정 파일을 수정해보자.

지난번 pseudo 모드를 설정할 때와 같이 별도의 conf폴더에 복사한다.

$cp -rf conf conf.cluster

pseudo 모드때와 별반 다른게 없다. hostname을 localhost에서 master로 변경한 정도.

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> q

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

<description>The name of the default file system. A URI whose

scheme and authority determine the FileSystem implementation.

</description>

</property>

</configuration>



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> w

<value>master:9001</value>

<description>The host and port that the MapReduce job tracker runs

at.</description>

</property>

</configuration> 



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>

<description>The actual number of replications can be specified when the

file is created.</description>

</property>

</configuration>



위 설정에서는 파일복제 개수(dfs.replication)를 2로 해도 상관없겠지만 느려져서 그냥 1로 설정하고 실행했다.


그 밖의 환경설정 파일들

masters 파일 수정
master


slaves 파일 수정
master
slave1

$bin/hadoop namenode -format


만약에 이전에 pseudo 모드로 실행한 적이 있다면 파일시스템을 지우고 포멧을 해주는것이 오류가 발생하지 않는다.

파일시스템의 위치는 hdfs-site.xml 에 dfs.name.dir, dfs.data.dir 속성에 의해 지정할 수 있다.

그리고 format은 마스터에서만 수행하면된다. slave에서도 별도록 format을 수행하면 에러가 발생한다.


실행하기

$bin/start-all.sh
-------------------------------------------------------------------------------------------------------

그밖의 주의할점 

슬레이브(윈도우 cygwin)에서도 hosts 파일에도 master, slave1의 ip를 등록해야한다.

그리고 conf/hadoop-env.sh 파일에 JAVA_HOME설정이 서로 다를 수 있으므로 수정해 주어야하겠다.