Introduction
|
|
하둡을 공부하기 위하여 설치해보자.
연습을 실전 같이! 완전분산(Fully distributed) 모드로 설치한다.
호스트 |
아이피 |
역할 |
코어/메모리 |
hadoop-01 | 192.168.153.10 | NameNode | 1 코어 / 1 GB |
hadoop-02 |
192.168.153.11 |
Secondary NameNode / DataNooe |
1 코어 / 1 GB |
hadoop-03 | 192.168.153.12 | DataNode | 1 코어 / 1 GB |
hadoop-04 | 192.168.153.xxx | DataNode | 1 코어 / 1 GB |
하둡 실행 계정 생성
하둡 실행 계정은 하둡 클러스터를 구성하는 모든 서버에 동일하게 생성해야 한단다. (정말? 실화야?)
"hadoop" 계정을 사용하도록하겠다. 각 서버에 생성하자.
root@hadoop-01:~# adduser hadoop
root@hadoop-02:~# adduser hadoop
root@hadoop-03:~# adduser hadoop
호스트 파일 수정
IP를 직접 사용해도 되지만 호스트명을 사용하자. 각 서버에서 /etc/hosts 파일을 아래와 같이 수정한다.
※ 물론 이 작업을 수행하는 나의 컴퓨터에도 호스트 파일 수정 작업이 되어 있어야 한다.
root@hadoop-01:~# vi /etc/hosts
127.0.0.1 localhost
192.168.153.10 hadoop-01
192.168.153.11 hadoop-02
192.168.153.12 hadoop-03
root@hadoop-02:~# vi /etc/hosts
root@hadoop-03:~# vi /etc/hosts
인코딩 방식 설정
하둡은 인코딩 방식으로 UTF-8을 사용한단다... 다행이 우분투는 기본적으로 UTF-8 사용해서 천만 다행 -_-/
방화벽 해제
어차피 내부통신에다 연습용이니 다 해제!
root@hadoop-01:~# ufw disable
root@hadoop-02:~# ufw disable
root@hadoop-03:~# ufw disable
자바 설치
Oracle JDK 1.7 을 설치 하도록 하겠다.
http://ubuntuhandbook.org/index.php/2014/02/install-oracle-java-6-7-or-8-ubuntu-14-04/
Oracle JDK 7 을 설치 했을 시에 설치되는 위치는 "/usr/lib/jvm/java-7-oracle" 이다.
하둡 클러스터를 위한 SSH 설정
마스터 노드는 클러스터에 위치한 다른 모든 노드들에 접근할 수 있어야 한다. 하둡은 이러한 접근을 위해 SSH를 사용한다.
마스터 노드(hadoop-01)에서 쌍으로 이루어진 SSH 키를 생성한다.
hadoop@hadoop-01:~$ pwd
/home/hadoop
hadoop@hadoop-01:~$ ssh-keygen -t rsa
생성된 공개키를 다른 서버에 복사한다.
ssh-copy-id -i [복사할 공개키 경로] [대상 서버 계정]@[대상 서버]
hadoop@hadoop-01:~$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@hadoop-02
The authenticity of host 'hadoop-02 (192.168.153.11)' can't be established.
ECDSA key fingerprint is 28:1a:ab:fa:2d:a8:e0:c8:5b:ef:f7:ff:74:69:45:96.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
hadoop@hadoop-02's password: [SSH 비밀번호 입력]
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'hadoop@hadoop-02'"
and check to make sure that only the key(s) you wanted were added.
hadoop@hadoop-01:~$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@hadoop-03
hadoop@hadoop-01:~$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@hadoop-01
하둡 다운로드 및 압축 해제
현재 최신 버전은 1.2.1 이다.
hadoop@hadoop-01:~$ pwd
/home/hadoop
hadoop@hadoop-01:~$ wget https://archive.apache.org/dist/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
압축 해제!
hadoop@hadoop-01:~$ tar xvfz hadoop-1.2.1.tar.gz
hadoop-env 수정
이것 저것....
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ pwd
/home/hadoop/hadoop-1.2.1/conf
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi hadoop-env.sh
# The java implementation to use. Required.
# 현재 우분투 14에 Oracle JDK 7을 설치하면 아래와 같은 경로에 설치된다.
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
# The maximum amount of heap to use, in MB. Default is 1000.
export HADOOP_HEAPSIZE=768
masters 수정
masters 파일에는 보조네임 노드를 실행할 서버를 설정한다. (여러개 가능)
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi masters
hadoop-02
slaves 수정
slaves 파일에는 데이터 노드를 실행할 서버를 설정한다.
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi slaves
hadoop-02
hadoop-03
core-site.xml 수정
이것 저것... ㅠㅠ
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi 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>
<value>hdfs://hadoop-01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-data</value>
</property>
</configuration>
hdfs-site.xml 수정
...
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi 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>3</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hadoop-01:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop-02:50090</value>
</property>
</configuration>
mapred-site.xml 수정
..
hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi 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>
<value>hadoop-01:9001</value>
</property>
</configuration>
하둡 환경설정 복사
네임노드에서 모든 수정 작업이 완료되면 다른 데이터노드 서버로 파일을 복사한다.
hadoop@hadoop-01:~$ cd ~
hadoop@hadoop-01:~$ tar zcvf hadoop.tar.gz hadoop-1.2.1
hadoop@hadoop-01:~$ scp hadoop.tar.gz hadoop@hadoop-02:/home/hadoop
hadoop@hadoop-01:~$ scp hadoop.tar.gz hadoop@hadoop-03:/home/hadoop
각각 서버로 전송된 파일 압축 해제
hadoop@hadoop-02:~$ tar xvfz hadoop.tar.gz
hadoop@hadoop-03:~$ tar xvfz hadoop.tar.gz
하둡 실행
네임노드를 초기화한다.
hadoop@hadoop-01:~/hadoop-1.2.1/bin$ ./hadoop namenode -format
전부 실행
hadoop@hadoop-01:~/hadoop-1.2.1/bin$ ./start-all.sh
제대로 올라갔는지 확인하자
hadoop@hadoop-01:~$ jps
3050 JobTracker
2730 NameNode
hadoop@hadoop-02:~$ jps
3067 SecondaryNameNode
2951 DataNode
3190 TaskTracker
hadoop@hadoop-03:~$ jps
3087 TaskTracker
2949 DataNode
http://hadoop-01:50070
'Study > Hadoop' 카테고리의 다른 글
Install Ambari and Deploy HDP in CentOS (1) | 2016.06.05 |
---|---|
Installing Hive(Hadoop 1) + MySQL on CentOS 6.7 (0) | 2016.01.05 |