티스토리 뷰

 참고 : 각 컴의 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
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
글 보관함