일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- OpenStack
- Local Repository
- 레펜타
- bonding
- yum
- eql
- 샤샤자
- firewalld
- VMWare
- CRS #레드비
- packstack
- WebConsole
- Windows NTP
- parted
- GDisk
- nmcli
- selinux
- centos 7
- centos7
- centos8
- DELL N Switch
- 갤럭시 피시본
- 갤럭시
- cockpit
- Today
- Total
딜미의 잡다한 IT 이야기...
HOW TO CONFIGURATION Hadoop ON Ubuntu 14.04 본문
예전에 Hadoop 공부 하면서 만들었던 자료 입니다.
부족한 부분이 많지만 참조 용도로 보시면 좋을 것 같습니다.
HOW TO CONFIGURATION Hadoop ON Ubuntu 14.04
OS : Ubuntu14.04로 진행 하였습니다.
NODE : 총 3개의 Node로 구성을 진행 하였습니다.
각각의 노드는 동일 유저명 으로 생성을 진행하였고, 노드별 분류 할 수있게 Hostname를 생성하였습니다.
구성은 아래와 같습니다.
역할
|
Hostname
|
ID
|
Master
|
Hadoop-m
|
user
|
Slave1
|
Hadoop-node1
|
user
|
Slave2
|
Hadoop-node2
|
user
|
기본 네트워크 설정 및 방화벽, SSH, Apache 설치 관련은 생략 하겠습니다.
. /etc/hosts 파일 작성 (모든 노드의 설정에 맞게 작성해야합니다.
예시) 192.168.0.10 Hadoop-m
192.168.0.11 Hadoop-node1
192.168.0.12 Hadoop-node2
. SSH 설정 (꼭 필요합니다. ㅠ.ㅠ)
Ssh keygen을 이용하여 키 값을 생성 합니다.
마스터에서 노드로 접속을 진행해야 하기 때문에 마스터에서 키 값을 생성 후 노드에 저장하는 작업이 필요합니다.
Ssh-keygen –t rsa 후 생성이 될 때 까지 Enter 키로 진행합니다.
제대로 생성이 되었는지는 아래의 명령어로 확인 합니다.
ls –al ~/.ssh/
위와 같이 나오면 정상적으로 생성 된 것입니다.
키 생성 후 Slave 노드에 .ssh 폳더 생성을 진행합니다.
Ex) user@Hadoop-m:~$ ssh user@Hadoop-node1 mkdir -p .ssh
생성된 키 값을 통신을 위해 Master 노드 및 나머지 노드에 전송을 진행합니다.
Ex) scp /home/user(ssh가 설치 되어 있는 경로)/.ssh/id_rsa.pub user@Hadoop-node1:id_rsa.pub
아래와 같은 메시지가 나오면 성공적으로 키 값이 이동된 것입니다.
id_rsa.pub 100% 395 0.4KB/s 00:00
이제 전송받은 파일을 authorized_keys로 추가해 주면 된다.
cat /home/user/id_rsa.pub >> /home/user/.ssh/authorized_keys
ssh 로 패스워드 없이 정상 접속이 되는지 확인해 봅니다.
add-apt-repository 를 사용하게 하기 위에 아래의 명령어를 모든 노드에 입력합니다.
sudo apt-get install software-properties-common
자바 설치를 진행합니다. ( 모든 노드에 진행해야 합니다.)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
모든 노드에 설치가 완료 되면 마스터 노드에 하둡을 다운로드 받는 작업을 진행합니다.
Wget https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz
다운로드가 끝나면 압출을 풀고 설치 진행을 할 디렉토리 를 생성해 줍니다.
Ex) sudo mkdir –p /data
sudo chown –R user:user /data/
/data/로 hadoop 압축파일을 풀어줍니다.
user@Hadoop-m:/data$ sudo tar xvzf hadoop-2.6.0.tar.gz
이제 실제로 저장될 디렉토리를 만들어 줍니다.(모든 노드에서 진행해야 합니다.)
sudo mkdir –p /data1/hadoop/tmp
sudo mkdir –p /data1/hadoop/dfs/name
sudo mkdir –p /data1/hadoop/dfs/data
권한 설정을 해줍니다.
sudo chown –R user:user /data1/hadoop
hadoop-2.6.0/etc/hadoop/core-site.xml 수정
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Hadoop-m:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data1/hadoop/tmp</value>
</property>
</configuration>
hadoop-2.6.0/etc/hadoop/hdfs-site.xml 수정
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data1/hadoop/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data1/hadoop/dfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
dfs.replication 은 HDFS 내에서 몇개의 블록을 복사해서 유지할 것인가 하는 것입니다. 숫자가 커질수록 안정도는 올라가지만 속도는 저하됩니다. 우리는 그냥 2로 정합니다. dfs.namenode.name.dir 과 dfs.datanode.data.dir 은 위에서 지정해 준 디렉토리를 지정해줍니다.
hadoop-2.6.0/etc/hadoop/mapred-site.xml 수정
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/data1/hadoop/hdfs/mapred</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/data1/hadoop/hdfs/mapred</value>
</property>
</configuration>
hadoop-2.6.0/etc/hadoop/yarn-site.xml 수정
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Hadoop-m:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Hadoop-m:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>Hadoop-m:8035</value>
</property>
</configuration>
hadoop-2.6.0/etc/hadoop/masters 생성 후 파일에 마스터 서버 호스트네임을 입력합니다.
user@Hadoop-m:/data/hadoop-2.6.0/etc/hadoop$ sudo vi masters
Hadoop-m
hadoop-2.6.0/etc/hadoop/slaves 파일에 datanode로 사용할 서버들을 적어줍니다.
user@Hadoop-m:/data/hadoop-2.6.0/etc/hadoop$ sudo vi slaves
Hadoop-node1
Hadoop-node2
hadoop-2.6.0/etc/hadoop/hadoop-env.sh 수정
위의 파일을 열어 export JAVA_HOME=/usr/lib/jvm/java-7-oracle 로 수정합니다.
Rsync를 이용하여 datanode에 hadoop설정을 뿌려줍니다.
rsync -avz /data/hadoop-2.6.0 user@Hadoop-node1:/data/
rsync -avz /data/hadoop-2.6.0 user@Hadoop-node2:/data/
마스터 노드에서 설정한 값을 나머지 datanode에 동일하게 설정 할 수 있습니다.
Hadoop 실행
Hadoop 를 실행 하기 전에 Hadoop 포맷이 필요합니다.
Hadoop가 설치 되어 있는 경로로 접근하여 명령어를 실행합니다.
user@Hadoop-m:/data/hadoop-2.6.0/bin$ ./hadoop namenode –format
포맷이 완료 된 후 분산파일 시스템 및 맵리듀스 시스템을 구동 합니다.
user@Hadoop-m:/data/hadoop-2.6.0/sbin$ ./start-dfs.sh
user@Hadoop-m:/data/hadoop-2.6.0/sbin$ ./start-yarn.sh
각 노드 별로 jps 명령어를 이용하여 프로세스가 정상적으로 올라왔는지 확인합니다.
웹브라우져 에서 마스터 서버의 ip:8088을 입력 하여 정상 작동 되는지 확인 합니다.
Hadoop Test 해보기.
user@Hadoop-m:/data/hadoop-2.6.0/bin$ ./hadoop fs -mkdir /hdinput (태스트를 위해 /hdinput 디렉토리 를 생성해 줍니다.)
user@Hadoop-m:/data/hadoop-2.6.0/bin$ ./hdfs dfs -copyFromLocal /data/hadoop-2.6.0/etc/hadoop/*.xml /hdinput (생성한 hdinput 디렉토리에 테스트를 위한 파일들을 복사해 줍니다.)
user@Hadoop-m:/data/hadoop-2.6.0/bin$ ./hadoop jar /data/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /hdinput hdlatestoutput 'dfs[a-z.]+' (위의 경로에 있는 example 파일을 이용하여 job를 진행합니다.)
user@Hadoop-m:/data/hadoop-2.6.0/bin$ ./hdfs dfs –lsr (테스트를 진행한 job 결과 확인 방법)
웹브라우저에서도 확인이 가능합니다.
확인 후 user@Hadoop-m:/data/hadoop-2.6.0/bin$ ./hadoop dfs -rmr hdlatestoutput 명령어로 output 디렉토리를 지워줘야 다음번 Job 에서 already existed 오류가 안생긴다.
참고 사이트
https://opentutorials.org/module/432/3742 (SSH 설정)
http://crazia.tistory.com/entry/HADOOP-%ED%95%98%EB%91%A1-Hadoop-260-%EC%84%A4%EC%B9%98 (Hadoop 설치 가이드)
http://inthound.blogspot.kr/2015/04/how-to-install-hadoop-260-in-ubuntu.html (Hadoop Test관련)
https://gist.github.com/piyasde/680e2066fce63df2f102 (Hadoop Test관련)
http://stackoverflow.com/questions/16797358/deleting-file-folder-from-hadoop (Hadoop Test관련)
부족한 부분이 많습니다. 혹시라도 잘못된 내용이 있다면 답변 부탁드립니다.
'Storage > 공부자료' 카테고리의 다른 글
vSAN 소개 (0) | 2019.09.24 |
---|---|
Scale Up Vs Scale Out 방식 소개 (0) | 2017.03.31 |
스냅 샷이란? (0) | 2017.03.31 |
HOW TO INSTALL CEPH(Release-HAMMER) ON CENTOS 6.7(FINAL) (1) | 2017.03.22 |
Storage란 무엇일까? (0) | 2017.03.20 |