하둡 동작 방식
HDFS 설치방식- master node 에서 hadoop 스크립트를 실행한다.
- hadoop 스크립트는 hadoop-site.xml의 정보를 읽어서 master node의 HOSTNAME:PORT정보를 얻어온다.
- ssh 프로토콜을 이용해서 master node의 HOSTNAME:PORT로연결을 한다.
- 연결후 hadoop-env.sh을 실행시켜서, data node의 hadoop실행환경을 확인한다.
- master node의 hadoop이 실행이 되고, hadoop-site.xml의 정보를 이용 분산디렉토리 루트를 생성한다.
- slaves 에 있는 data node host 목록을 읽어들인다.
- slaves 로 연결해서 hadoop-env.sh를 읽어서 hadoop을 실행 분산 디렉토리 운용을 시작한다.
1.Standalone 방식
2.Pseudo-Distributed 방식
3.Fully-Distributed 방식
Pseudo-Distributed 방식(컴퓨터 한대로 하둡 테스트할 때)
단일노드에서 Hadoop Daemon이 분리된 Java Process로 수행되는 방식
i. 아래 명령을 이용하여 ssh 와 rsync 를 설치. ssh와 rsync 를 설치하는 이유는 hadoop 내부에서
데이터 리플리케이션에 rsync를 사용하고 슬래이브서버와의 통신에 ssh를 사용하기 때문임.
$ sudo apt-get install ssh
$ sudo apt-get install rsync
% 위 명령어는 ubuntu Linux환경에서 사용하는 명령임.
각 리눅스 배포버전에 맞는 설치 및 확인 방법으로 ssh와 rsync의 설치 유무
를 판단하고 설치되어있지 않을시에 위 프로그램들을 설치해주어야 한다.
ii. conf/core-site.xml 파일을 아래와 같이 수정.
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hostname1:9000</value>
</property>
</configuration>
iii. conf/hdfs-site.xml 파일을 아래와 같이 수정.
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
iv. conf/mapred-site.xml 파일을 아래와 같이 수정.
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hostname1:9001</value>
</property>
</configuration>
v. 아래의 명령어를 입력하여 localhost 를 신뢰관계로 세팅.
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
vi. 방화벽 설정을 변경.
# system-config-securitylevel 명령어로 아래와 같은 포트를 열어둔다.
(WEB 에서 HDFS상태를 확인하는데 사용하는 포트들입니다)
9000, 9001, 50010, 50020, 50030, 50060, 50070, 50075, 50090, 50470, 50475
vii. HDFS를 사용하기 위해 namenode를 포맷하고 실행
$ bin/hadoop namenode -format
$ bin/start-all.sh
viii. jps 명령으로 hadoop 데몬이 정상적으로 로딩되어있는지 확인.
아래와 같은 데몬들이 동작하고 있으면 정상동작하고 있는것임.
7365 jps
6828 NameNode
7030 SecondaryNameNode
7228 TaskTracker
7099 JobTracker
6925 DataNode
Fully-Distributed 방식(여러대 컴퓨터 사용할때)
여러대의 컴퓨터를 클러스터로 묶는 방식으로 여기서는 master를 hostname1.com,
슬레이브를 hostname2.com으로 가정하고 진행.
각 설정파일의 자세한 설명은 오른쪽 링크에서 확인 가능함 click
i. Hadoop의 설정파일에는 두종류가 있음
A. Read-only default Configuration :
src/core/core-default.xml,
src/hdfs/hdfs-default.xml,
src/mapred/mapred-default.xml.
B. Site-specific Configuration :
conf/core-site.xml
conf/hdfs-site.xml
conf/mapred-site.xml
ii. Master를 아래와 같이 세팅.
A. conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hostname1.com:9000</value>
</property>
</configuration>
B. conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.block.size</name>
<value>1048576</value>
</property>
</configuration>
C. conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://hostname1.com:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/hdfs/mapreduce/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/hdfs/mapreduce/local</value>
</property>
</configuration>
D. Conf/slaves
hostname1.com
hostname2.com
E. Conf/masters
hostname1.com
iii. 슬레이브를 아래와 같이 세팅합니다.
A. conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hostname1.com:9000</value>
</property>
</configuration>
B. conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.block.size</name>
<value>1048576</value>
</property>
</configuration>
C. conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker </name>
<value>hdfs://hostname2.com:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/hdfs/mapreduce/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/hdfs/mapreduce/local</value>
</property>
</configuration>
iv. hostname1.com과 hostname1.com을 신뢰관계로 등록
hostname1.com ~/.ssh/authorized_keys에
hostname2.com 의 id_dsa.pub파일의 내용을 넣어주고
hostname2.com 의 ~/.ssh/authorized_keys에
hostname1.com 의 id_dsa.pub파일의 내용을 넣어줍니다.
v. 양 서버간에 ssh 통신에 이상이 없는지 테스트.
hostname1.com 에서
$ ssh hostname2.com
hostname2.com 에서
$ ssh hostname1.com
vi. Master에서 아래 명령을 수행하여 namenode를 format하고 hadoop을 실행
(슬레이브에서는 수행시키시면 안됩니다.)
$ bin/hadoop namenode -format
$ bin/start-all.sh
vii. %JAVA_HOME%/bin/jps를 실행하여 아래와같이 잘 수행되는지 확인
마스터 실행상황
32740 JobTracker
32647 SecondaryNameNode
32492 DataNode
32343 NameNode
22255 Jps
388 TaskTracker
슬레이브 실행상황
29270 Jps
30595 DataNode
31425 TaskTracker
'컴퓨터 공학 자료(학부) > Hadoop' 카테고리의 다른 글
하둡 디렉토리 구조 (0) | 2012.01.03 |
---|---|
ssh 설치 및 설정 (0) | 2011.11.09 |