2. 2
1. 개요
INDEX
1.1 필요프로그램
1.1.1 Oracle VirtualBox
1.2.2 CentOS ISO
2. 설치 2.1 CentOS설치
2.1.1 기본설정(이름/운영체제, 메모리, 하드드라이브, 네트워크 )
2.1.2 설치수행/호스트명/시간대/암호설정
2.1.3 네트워크 셋팅 (/etc/sysconfig/ifcfg… ) 정보수정 (예:ifcfg-eth0)
2.2 Hadoop 설치 및 설정
2.2.1 기본정보 수정
2.2.2 SW설치(wget/java/hadoop )
2.2.3 환경변수 설정
3. 클러스터 구성 3.1 CentOS 스냅샷/복제 구성
3.1.1 스냅샷/복제
3.1.2 네트워크 수정 (host명/네트워크인터페이스정보|규칙)
3.2 Hadoop 클러스터 설정
3.2.1 공개키 설치 및 배포와 ssh 호스트정보 생성 및 배포
3.2.2 하둡 설정 (master/slave, namenode 포맷,….)
3.3.3 하둡 실행
3. 3
1.개요-사전체크
1. 개요
Oracle VirtualBox 이용하여 CentOS VM들로 구성된 Hadoop 클러스터 구성
2. 필요 프로그램
2.1 Oracle VirtualBox
2.1.1 설명 : VM(Virtual Machine)을 생성해주는 하이퍼바이저(Hypervisor)
2.1.2 다운 : https://www.virtualbox.org/wiki/Downloads
2.2 CentOS ISO
2.2.1 설명 : CentOS 설치할 - ISO 파일
2.2.2 다운 : http://vault.centos.org/6.5/isos/x86_64/
4. 4
2.1 CentOS 설치
2.1.1 기본설정 [설치준비]
1. 이름/종류/버전 지정
2. 메모리설정
3. 하드드라이브 신규/기존 선택
4. 하드드라이브 종류 설정
5. 하드최대 설정방법 선정
6. 하드드라이브 위치지정
7. 하드드라이브 크기지정
8. CentOS 얼개가 완성됨.
9. ISO파일 마운트
10. 네트워크카드 추가 (NAT, 호스트 전용)
11. 마운트한 드라이브 선정
12. Install …. 클릭하여 Install 수행
2.1.2 CentOS설치
1. Install 화면의 오른쪽 하단 Next 클릭
2. 장치종류 선택 “기본 저장 장치”
3. 저장장치 경고창 선택에서 “모든 데이터 삭제…”
4. 시간대 설정
5. 디스크 종류 선택 “기존의 Linux 시스템 교체”
6. 디스크에 저장장치에 설정을 기록 “변경사항기록”
2.1.3 네트워크 셋팅 및 추가 설정
1. 네트워크 IP설정
2. 방화벽 해제
3. ssh 연결허용 옵션수정(Fast Connect)
10. 10
2.1 CentOS 설치 – 기본설정
[ 10. 네트워크카드 추가 – NAT/호스트전용…] [ 11. 시작 및 install 수행 ]
11. 11
2.1 CentOS 설치 - Install
[ 1. Install 화면의 오른쪽 하단 Next 클릭] [ 2. 장치종류 선택 “기본 저장 장치” ]
12. 12
2.1 CentOS 설치 - Install
[ 3. 저장장치 경고창 선택에서 “모든 데이터 삭제…”] [ 4. 시간대 설정 ]
13. 13
2.1 CentOS 설치 - Install
[ 5. 디스크 종류 선택 “기존의 Linux 시스템 교체”] [ 6. 디스크에 저장장치에 설정을 기록 “변경사항기록”]
14. 14
2.1 CentOS 설치 – 네트워크 설정
2.1.3 네트워크 셋팅 및 추가 설정
1. 네트워크 IP설정
$cd /etc/sysconfig/network-scripts
$vi ifcfg-eth1 [호스트 전용 네트워크 인터페이스인 경우 ]
$service network restart
2. 방화벽 해제
$iptables -F
$service iptables save
3. ssh 지연 연결 수정
$vi /etc/ssh/sshd_config
GSSAPIAuthentication no 해당 옵션을 no로 설정
UseDNS no 해당 옵션을 no로 설정
$service sshd restart
DEVICE=eth1
TYPE=Ethernet
UUID=3ae30b55-7007-4149-8065-5f53a81ce74a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:0A:BE:80
NETMASK=255.255.255.0
IPADDR=192.168.56.130
15. 15
2.2 Hadoop 설치 및 설정
2.2 기본정보 및 SW설치
1. 사용자 생성 및 패스워드 설정
2. Java 설치
3. yum 으로 wget install
4. hadoop 설치
5. 환경(PATH, CLASSPATH, HADOOP_HOME)파일에 설정
16. 16
2.2 Hadoop 설치 및 설정
기본정보 및 SW설치
1. 사용자 생성 및 패스워드 설정
$useradd htest
$passwd htest
2. Java 설치
java download site 접속 (현재 : http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html)
linux 버전 1.7 다운로드
~/server에 설치
3. yum 으로 wget install
$yum install wget
4. hadoop 설치 [다운로드참조 site : http://ftp.daumkakao.com/apache/hadoop/common/ ]
# http://ftp.daumkakao.com/apache/hadoop/common/hadoop-1.2.1/
$cd ~/server
$mkdir hadoop
$cd hadoop
$wget http://ftp.daumkakao.com/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
$tar xvzf hadoop-1.2.1.tar.gz
17. 17
2.2 Hadoop 설치 및 설정
환경설정
$vi .bash_profile
PATH=$PATH:$HOME/bin
#추가항목……
export JAVA_HOME=/home/htest/server/jdk1.7.0_79
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export CLASSPATH="."
#HADOOP
export HADOOP_HOME=/home/htest/server/hadoop
PATH=$PATH:$HADOOP_HOME/hadoop-1.2.1/bin:$PATH
HADOOP_HOME_WARN_SUPPRESS=TRUE
export HADOOP_HOME_WARN_SUPPRESS
export PATH
#.................................
18. 18
3.1 CentOS 스냅샷/복제 구성
3.1.1 스냅샷/복제
1. 전원Off후 오른 마우스 클릭 시 나타난 복제메뉴 클릭
2. 복제방식 선택
3. 스냅샷 방식선택
4. 복제된 VM 확인
3.1.2 네트워크 수정
1. /etc/sysconfig/network-scripts/ifcfg-eth0 수정
2. /etc/sysconfig/network-scripts/ifcfg-eth1 수정
3. /etc/udev/rules.d/70-persistent-net.rules 삭제
4. reboot후 네트워크 확인 <ifconfig 사용>”
21. 21
3. 스냅샷/복제 구성 – 네트워크 구성
[ 2. /etc/sysconfig/network-scripts/ifcfg-eth1 수정 ][ 1. /etc/sysconfig/network-scripts/ifcfg-eth0 수정 ]
HWADDR 과 IPADDR부분 수정함
- IP 형식 : 192.168.xxx.xxx
- HWADDR 은 아래 화면 참조
HWADDR 수정함 [ MAC주소임 ]
22. 22
3. 스냅샷/복제 구성 – 네트워크 구성
[ 3. /etc/udev/rules.d/70-persistent-net.rules 삭제 ]
위 파일 삭제하면, rebooting되면 다시 생성함.
$rm /etc/udev/rules.d/70-persistent-net.rules
[ 4. reboot후 네트워크 확인 <ifconfig 사용> ]
$reboot
……………………….
$ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:A6:48:9B
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea6:489b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:797 (797.0 b) TX bytes:1008 (1008.0 b)
eth1 Link encap:Ethernet HWaddr 08:00:27:7B:01:6C
inet addr:192.168.56.210 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe7b:16c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:104 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10542 (10.2 KiB) TX bytes:5505 (5.3 KiB)
lo Link encap:Local Loopback
……………………………….
24. 24
3.2 Hadoop 클러스터 설정
3.2.1 공개키 및 ssh 구성
1. 각 Host이름 변경 (hadoop1 NameNode, hadoop2 DataNode1, …)
2. 각 Host의 IP등록
3. ssh 공개키 설치/병합/배포
4. ssh 호스트 alias 작성/배포
3.2.2 하둡 설정
1. 작업 저장소 생성
2. conf/hadoop-env.sh 설정
3. conf/core-site.xml 수정 - [ I/O설정 ]
4. conf/hdfs-site.xml 수정 - [ 네임/보조네임/데이터 노드 설정]
5. conf/mapred-site.xml 수정 - [ 잡트래커/테스크트래커 ]
6. conf/masters와 slaves 설정
7. conf파일 데이터 노드에 복사
8. NameNode 포맷
3.2.3 하둡 실행
1. $start-all.sh
2. 확인
3. 예제실행
4. 결과 확인
25. 25
3.2 Hadoop 클러스터 설정
공개키 및 ssh 구성
1. 각 Host이름 변경 <root로 login>
$vi /etc/sysconfig/network
hadoop1 NameNode, hadoop2 DataNode1, hadoop3 DataNode2
2. 각 Host의 IP등록 <root로 login>
$vi /etc/hosts
192.168.56.130 NameNode
192.168.56.210 DataNode1
192.168.56.211 DataNode2
3 각 Host에 ssh 공개키 설치/취합/배포
각 Host 설치
$ssh-keygen -t rsa
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$chmod 644 ~/.ssh/authorized_keys
ssh 공개키 취합
$vi ~/.ssh/authorized_keys
#각 Host에 있는 정보를 NameNode의 위 파일 끝에 append한다.
ssh 공개키 배포
$scp -rp ~/.ssh/authorized_keys htest@DataNode1:~/.ssh/authorized_keys
$scp -rp ~/.ssh/authorized_keys htest@DataNode2:~/.ssh/authorized_keys
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAqOrQ4B9ifMU
wE5zHjLFBBGccvLrECl9452219h6ZMMw3JNxsKVOy
xQ/Zc1YphLaRV8efyYNleyCDahNqcvZjoUT0W45h8u
VRnKhrPEgy+jo7+7r79+GrTXoDg/zit9pKQJjW60/wlox
PWiAFPGUamnyytAbuEPMvvWbmehjIxaP1Pd/M73Mt
rgeNjf8HKXlRuRCeI9yZgulepQunkirQj+M0AlExjGeCE
J0vpc+smjEKkOanwK7zUXh06wQdfU7bsTMeNAFLu
mmWEmZhNGnSsxzzYiGjTLiYdHlmAiZonbr/RSo3B8P
j+J8O3PjbRMNIcP3bdYVnkIOWc0HcdMFZ9Q==
htest@NameNode
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEApLFFHczjoMtT
5EO3MxZTDGgwG4NSrF58hb3/HTtKGu0n8ZegS4uec
TVQX6h/F03MjAVj4ghCKLzWCQzIebLyF3mtVr3qCx6l
kRDWCWWIfqkDCKO0id0ZlzP2nNBaoE7yLEghhA3Q
d0di00/f0knWNdpME6i6IVCgHGlHu8D7IwKVmf4fLIgZ
LG8z4yEgk3mBcJL7RElGKLTRPtmXdNdMD9/HRuVt
Ybog6fDlmiEzGKfN0idSsLGLgOaNCM8SfBOr3lvBpwc
oasSt5zyylPwumkjqX7d01vlaWUHZAfD6sFFuDL1IbjX
GF3H5n8J4Vqz9FU6yw6OXFigeWxaVcSkfyQ==
htest@DataNode1
26. 26
3.2 Hadoop 클러스터 설정
공개키 및 ssh 구성
4. SSH 호스트 Alias 설정하기
$touch ~/.ssh/config
$chmod 600 ~/.ssh/config
$vi ~/.ssh/config
#----- 아래사항 기입 --- #
Host NameNode
HostName NameNode
User htest
Host DataNode1
HostName DataNode1
User htest
Host DataNode2
HostName DataNode2
User htest
Host cacti manage
HostName manage.mysomesite.NameNode
HostName manage.mysomesite.DataNode1
HostName manage.mysomesite.DataNode2
Host *
User htest
User htest
User htest
#----- 여기까지 기입 --- #
5. SSH 호스트 Alias 배포
$scp -rp ~/.ssh/config htest@DataNode1:~/.ssh/config
$scp -rp ~/.ssh/config htest@DataNode2:~/.ssh/config
27. 27
3.2 Hadoop 클러스터 설정
하둡설정
1. 작업 저장소 생성
$cd $HADOOP_HOME
$mkdir HADOOP_DATA_DIR
$cd HADOOP_DATA_DIR
$mkdir name data
$chmod 755 name
$chmod 755 data
2. conf/hadoop-env.sh 설정 <NameNode에서 작업>
$cd $HADOOP_HOME/hadoop.1.2.1/conf
$vi hadoop-env.sh
export JAVA_HOME=/home/htest/server/jdk1.7.0_79
3. conf/core-site.xml 수정 <NameNode에서 작업>
$vi core-site.xml
#<configuration>부분에 아래항목 추가
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
4. conf/mapred-site.xml 수정 <NameNode에서 작업>
# <configuration>부분에 아래항목 추가
<property>
<name>mapred.job.tracker</name>
<value>192.168.56.130:9001</value>
<final>true</final>
</property>
5. conf/hdfs-site.xml 수정 <NameNode에서 작업>
# <configuration>부분에 아래항목 추가
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/htest/server/hadoop/HADOOP_DATA_DIR/name</value>
<final>true</final>
</property><property>
<name>dfs.data.dir</name>
<value>/home/htest/server/hadoop/HADOOP_DATA_DIR/data</value>
<final>true</final>
</property>
6. conf/masters와 slaves 설정
$vi $HADOOP_HOME/hadoop-1.2.1/conf/masters
#================================
localhost
DataNode1
#================================
$vi $HADOOP_HOME/hadoop-1.2.1/conf/slaves
#================================
localhost
DataNode1
DataNode2
#================================
28. 28
3.2 Hadoop 클러스터 설정
하둡설정
7. conf파일 데이터 노드에 복사
$ cd $HADOOP_HOME/hadoop-1.2.1/conf/
$ scp * htest@DataNode1:/home/htest/server/hadoop/hadoop-1.2.1/conf
$ scp * htest@DataNode2:/home/htest/server/hadoop/hadoop-1.2.1/conf
8. namenode format
$cd $HADOOP_HOME
$hadoop namenode -format