hadoop-env.sh 파일을 수정하는 대신 /etc/profile 이나 유저 프로파일에 JAVA_HOME 환경변수를 설정하는 방법도 있다.
클러스터 구성
아래와 같이 하둡 클러스터를 구성하기로 했다.
hadoop01, hadoop02, hadoop03 세 대의 노드로 구성한다. 이 중 hadoop01을 마스터노드(Master node)로 설정하기로 했다. 나머지 노드들은 슬레이브 노드(Slave node)가 된다. 하둡 클러스터에서 마스터 노드는 Name node, checkpoint node, Journal node, Resource manager, JobTracker 등의 클러스터 정보를 관리한다.
위 그림에서 볼 수 있듯이 마스터 노드는 name node, secondary name node, jobtracker 데몬(마스터 데몬이라고 부르기도 한다.)으로 구성된다. 슬레이브 노드는 tasktracker 와 datanode로 구성이 된다. 마스터와 슬레이브의 주요 차이점은 마스터 노드가 하둡 클러스터를 관리하기 위한 기능들을 가지는 반면, 슬레이브 노드는 HDFS(하둡파일 시스템)과 맵리듀스(MapReduce)등 데이터를 저장하고 처리하기 위한 기능을 가지고 있다는 점이다.
/etc/hosts 구성
호스트 이름으로 노드들을 찾을 수 있도록 /etc/hosts 파일을 구성한다. 모든 노드들에 아래의 설정을 추가했다.
루트(root)계정이 아닌 일반 계정 yundream으로 하둡을 실행하기로 했다. 모든 하둡 노드에 yundream 계정을 만들었다.
ssh key 설정
마스터 노드와 슬레이브 노드는 ssh 로 통신을 한다. 마스터 노드에서 ssh key를 만들어서 슬레이브 노드에 등록하자.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/yundream/.ssh/id_rsa):
Created directory '/home/yundream/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/yundream/.ssh/id_rsa.
Your public key has been saved in /home/yundream/.ssh/id_rsa.pub.
id_rsa.pub를 슬레이브 노드의 .ssh/autorized_keys에 등록한다.
$ cat id_rsa.pub >> $HOME/.ssh/autorized_keys
ssh public key는 슬레이브 노드들 뿐만 아니라 마스터 노드의 autorized_keys에도 등록한다. 마스터 노드에서 슬레이브 노드로 ssh 연결을 확인해 보자. 참고로 마스
마지막으로 dfs.replication 파라메터를 변경한다. 이 파라메터로 블럭들에 대한 복제(리플리카)의 갯수를 설정할 수 있다. 복제가 많을 수록 데이터를 더 안전하게 보관 할 수 있다. dfs.replication의 기본 값은 3인데, 지금 테스트 환경은 2개의 노드만 사용 하고 있으므로 dfs.replication의 값은 2로 설정한다.
Contents
Hadoop 설치
- Standalone : 단일 노드에서 실행한다. 테스트 및 디버깅 용도로 사용 할 수 있다.
- Pseudo distributed : 단일 노드에서 클러스터를 구성 할 수 있다.
- Full distributed : 두대 이상의 노드를 클러스터로 묶는다. 실제 운영에서 사용하는 모드다.
버츄얼박스(VirtualBox)를 이용해서 Full distirubed 모드로 설치하기로 했다. 하둡 설치환경은 아래와 같다.JDK 설치
기타 패키지 설치
Hadoop 설치
$ cat /usr/local/hadoop/etc/hadoop/hadoop-env.sh ...... # export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/ ......클러스터 구성
/etc/hosts 구성
하둡 유저
ssh key 설정
하둡 설정
master (마스터노드 설정)
slaves (마스터노드 설정)
*-site.xml (모든 노드)
- core-site.xml
- mapred-site.xml
이제 HDFS의 복제(리플리카) 갯수를 설정한다. 보통 3보다 크지 않게 잡는다. 이 경우 데이터 노드가 2개 이므로 2로 잡았다. hdfs-site.xml 파일을 수정하자.<configuration> <property> <name>dfs.replication</name> <value>2</value> <description>Default block replication</description> </property> </configuration><configuration> <property> <name>mapred.job.tracker</name> <value>hadoop01:54311</value> <description>Map Reduce jobtracker</description> </property> </configuration><configuration> <property> <name>dfs.data.dir</name> <value>/opt/hadoop/hadoop/dfs/name/data</value> <final>true</final> </property> <property> <name>dfs.name.dir</name> <value>/opt/hadoop/hadoop/dfs/name</value> <final>true</final> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>하둡 실행
- start-dfs.sh : hdfs 데몬.
- start-yarn.sh : yarn 데몬. yarn 데몬은 MR을 실행한다.
start-all.sh를 실행해 보자.테스트
참고
Recent Posts
Archive Posts
Tags