티스토리 뷰
참고 : 각 컴의 ip는 고정된 값이 아니라, 상황에 맞게 적어 주면 된다. 하둡 클러스터링 서버 구축 * 초기 작업 - 처음에 생성한 master사용자로 로그온 한 후에 업데이트, 절전 해제 - root 사용자에서 useradd hadoop, passwd hadoop:1234 설정을 한다. - master를 로그아웃하고 hadoop 사용자로 로그인 한다. - centos7은 업데이트하면 openjdk8이 자동으로 설치된다.
# yum -y install java-1.8.0-openjdk-devel 한다.
방화벽 제거 [root@localhost ~]# systemctl status firewalld.service [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl mask firewalld
* hostname을 변경 [hadoop@localhost ~]$ hostnamectl set-hostname nameserver1
* 모든 노드들을 등록해 준다. [root@localhost ~]# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.2.5 nameserver1 10.0.2.10 slave1 10.0.2.11 slave2 10.0.2.12 slave3
ip 변경 : 설정 -> 네트워크 -> 설정 <= 맨 위의 그림 참조
* slave 컴 3대 준비 작업 : master를 이용. 복제 slave 컴의 hostname 변경. ip 변경 ip 변경 후 "다시 시작" 한다.
* 각 컴에 접속 해 보기 nameserver1 ~ ]$ ssh hadoop@slave1 slave1 ~ ]$ ssh hadoop@nameserver1 ...
* 네트워크 확인해 보기 ping slave1 ...
* ssh 작업 -- 각 컴의 계정에 접속 시 암호묻기 해제 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [hadoop@nameserver1 ~]$ ssh-keygen -t rsa #ssh 키 생성 [hadoop@nameserver1 ~]$ cd .ssh/ [hadoop@nameserver1.ssh]$ scp id_rsa.pub /home/hadoop/.ssh/authorized_keys [hadoop@nameserver1.ssh]$ scp id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/authorized_keys [hadoop@nameserver1.ssh]$ scp id_rsa.pub hadoop@slave2:/home/hadoop/.ssh/authorized_keys [hadoop@nameserver1.ssh]$ scp id_rsa.pub hadoop@slave3:/home/hadoop/.ssh/authorized_keys
이제 아래와 같이 입력하면 암호 묻는 작업을 하지 않게 된다. 1회만 실행하면 된다. [hadoop@nameserver1 ~]$ ssh hadoop@slave1 [hadoop@slave1 ~]$ ssh hadoop@nameserver1 ...
* Hadoop 설치 시작 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [hadoop@nameserver1 ~]$ wget http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz [hadoop@nameserver1 ~]$ tar xvzf hadoop-2.7.1.tar.gz
환경 설정 [hadoop@nameserver1 ~]$ vi .bash_profile # User specific environment and startup programs export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64 export HADOOP_HOME=/home/hadoop/hadoop-2.7.1
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export PATH
.bash_profile의 수정된 내용 적용 [hadoop@nameserver1 ~]$ source .bash_profile [hadoop@nameserver1 ~]$ cd hadoop-2.7.1/etc/hadoop/
MR framework 환경 설정에 jdk 추가 [hadoop@nameserver1 hadoop$ vi hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64
Yarn 환경 설정에 jdk 추가 [hadoop@nameserver1 hadoop]$ vi yarn-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64
data node 지정 [hadoop@nameserver1 hadoop]$ vi slaves slave1 slave2 slave3
HDFS와 MapReduce에서 공통적으로 사용할 정보들을 설정. [hadoop@nameserver1 hadoop]$ vi core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://nameserver1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.7.1/tmp/</value> </property> </configuration>
HDFS에 tmp 디렉토리 생성 (임시 데이터 저장용) [hadoop@nameserver1 hadoop]$ mkdir /home/hadoop/hadoop-2.7.1/tmp
하둡 파일시스템(HDFS)과 관련된 환경 정보를 설정 [hadoop@nameserver1 hadoop]$ vi hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>slave1:50091</value> </property> </configuration>
MapReduce의 어플리케이션 정보를 설정 [hadoop@nameserver1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
MR framework 설정 파일 [hadoop@nameserver1 hadoop]$ vi mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
Resource Manager, Node Manager 정보를 설정 [hadoop@nameserver1 hadoop]$ vi 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>nameserver1:8025</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>nameserver1:8030</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>nameserver1:8040</value> </property> </configuration>
설정 사항을 Slave 서버에 배포 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1) 하둡 디렉토리 배포 [hadoop@nameserver1 hadoop]$ cd [hadoop@nameserver1 ~]$ scp -r /home/hadoop/hadoop-2.7.1 hadoop@slave1:~ [hadoop@nameserver1 ~]$ scp -r /home/hadoop/hadoop-2.7.1 hadoop@slave2:~ [hadoop@nameserver1 ~]$ scp -r /home/hadoop/hadoop-2.7.1 hadoop@slave3:~
2) 계정 profile 배포 [hadoop@nameserver1 ~]$ scp /home/hadoop/.bash_profile hadoop@slave1:~ [hadoop@nameserver1 ~]$ scp /home/hadoop/.bash_profile hadoop@slave2:~ [hadoop@nameserver1 ~]$ scp /home/hadoop/.bash_profile hadoop@slave3:~
처음 HDFS를 사용할 때는 HDFS를 포맷 [hadoop@nameserver1 ~]$ hdfs namenode -format
설치 후 하둡 실행하기 ) 하둡 시작 [hadoop@nameserver1 ~]$ start-dfs.sh [hadoop@nameserver1 ~]$ start-yarn.sh [hadoop@nameserver1 ~]$ mr-jobhistory-daemon.sh start historyserver
하둡 종료 [hadoop@nameserver1 ~]$ stop-dfs.sh [hadoop@nameserver1 ~]$ stop-yarn.sh [hadoop@nameserver1 ~]$ mr-jobhistory-daemon.sh stop historyserver
하둡 상태 확인 - NameNode와 DataNode의 동작여부 확인 [hadoop@nameserver1 ~]$ jps
* Summary(HDFS 상태 확인) : http://localhost:50070/ * All Applications : http://localhost:8088/
워드 카운트 예제 실행 [hadoop@nameserver1 ~]$ cd hadoop-2.7.1 [hadoop@nameserver1 hadoop-2.7.1]$ hdfs dfs -mkdir /test [hadoop@nameserver1 hadoop-2.7.1]$ hdfs dfs -copyFromLocal ./NOTICE.txt /test [hadoop@nameserver1 hadoop-2.7.1]$ hdfs dfs -cat /test/NOTICE.txt [hadoop@nameserver1 hadoop-2.7.1]$ hadoop jar /home/hadoop/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /test/NOTICE.txt /output [hadoop@nameserver1 hadoop-2.7.1]$ hdfs dfs -ls /output [hadoop@nameserver1 hadoop-2.7.1]$ hdfs dfs -cat /output/part-r-00000 |
'공부 > Linux' 카테고리의 다른 글
Mac에서 파이썬 설치 (0) | 2016.11.28 |
---|---|
R 설치 (0) | 2016.11.28 |
Linux Python, jdk8 설치 (0) | 2016.11.23 |
리눅스 기본 명령어 (0) | 2016.11.23 |
리눅스의 종류 (0) | 2016.11.23 |