본문 바로가기
Hadoop

Hadoop(하둡) 설치 및 사전 셋팅 (feat. Ubuntu)

by 집못가는프로그래머 2021. 9. 6.

<사전 셋팅>

1. Ubuntu(우분투) 터미널 실행

 

2. sudo apt update (apt를 먼저 업데이트 해주어야 한다)

 

3. sudo apt install openjdk-8-jdk -y  : 하둡은 자바(Java) 기반이기 때문에 자바 실행 환경이 설치되어 있어야 한다. 

 

4. java -version; javac -version : 자바 설치된 버전을 확인한다

 

5. sudo apt install openssh-server openssh-client -y   : (총괄 관리를 하는)Master 컴퓨터와 Slave 컴퓨터들이 있을 때

   Slave 컴퓨터들끼리 통신을 위함

 

6. sudo adduser hdoop    : Cluster 내에서 이용될 공통계정 설정 (ID : hdoop) (e.g. 컴퓨터가 100개 일때 모든 컴퓨터의 ID와 PW를 통일한다)

 

7. sudo visudo -f /etc/sudoers   : nano를 통해 파일이 하나 열리고

이처럼 root ALL=(ALL:ALL) ALL 밑에 새로만든 계정이름(hdoop)을 적어준다

 -> 기존 계정에 hdoop 권한을 설정한다.

 

8. su - hdoop   : 사용중인 계정을 hdoop으로 전환 (whoami를 쳐보면 사용중인 계정이 hdoop으로 바뀐것을 확인)

 

9. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  : 전체 컴퓨터의 비밀번호를 설정한다

 

10. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys : 허용된 유저에 설정한 비밀번호를 저장해준다. (컴퓨터들간의 열결을 위함)

 

11. chmod 0600 ~/.ssh/authorized_keys   :  아까 만들어준 authorized_keys를 hdoop 계정 최고권한만 읽기,쓰기 가 가능하도록 한다.

 

12. ssh localhost   :  ssh를 통해 localhost로 접속한다. (현재 사용중인 hdoop에 대한 권한 및 설정은 위에서 모두 했으므로 가능하다)


<하둡 설치>

1.  https://downloads.apache.org/hadoop/common/  < 링크를 우분투에서 접속하여 최신버전의 전 버전 hadoop을 다운로드한다.

   - 전 버전을 설치하는 이유는 가장 최신에 나온 버전은 이슈가 많을 수 있기 때문에 안정화 되어있는 전 버전을 추천

 

2. 하둡 버전.tar.gz 파일을 '파일 저장'을 체크하여 저장한다. (열기 아님)

 

3. cd ../hduser/Downloads/   : 하둡 설치파일의 경로

 

4. ls  : 설치 파일이 있는지 확인

 

5. cp 다운로드받은파일 ~/    : 하둡 설치파일을 현재 디렉토리로 옮긴다(hdoop 디렉토리)

 

6. cd   : 현재 디렉토리로 돌아온다

 

7. ls   : 옮겨진 설치파일이 있는지 확인

 

8. tar xvzf 설치파일명   : 압축되어 있는 설치파일 압축 해제

 

9. mv 해제한 설치파일 hadoop   : hadoop 이라는 파일을 만들어서 그 안에 설치파일을 넣는다.

 

10. nano .bashrc   : .bashrc 파일 열기 (하둡 관련 설정을 위함)

 

11. 

#Hadoop Related Options
export HADOOP_HOME=/home/hdoop/hadoop      
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS"-Djava.library.path=$HADOOP_HOME/lib/native"

 

↑ Windows의 환경변수 셋팅과 비슷한 작업. 

HADOOP_HOME이라는 변수에 Path를 넣어주고 $HADOOP_HOME (앞에 $가 붙으면 이미 선언된 변수임을 뜻함)을

이용하여 모든 셋팅을 한다

 

12. source .bashrc  : 설정 변경 후 컴퓨터를 다시시작하지 않고 .bashrc 파일만 따로 실행시킨다.

 

13. echo $HADOOP_HOME   : 설정했던 HADOOP_HOME의 값을 다시한번 확인해준다

 

14. which java  : 설치되어있는 java의 경로를 확인한다.

 

15. readlink -f 위 경로 : 위에서 구한 java 경로를 통해 내부의 링크를 읽는다. (/usr/lib/jvm/java-8-openjdk-amd64 까지만 복사해둔다)

 

16. nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh   : 하둡의 환경설정 파일(hadoop-env.sh)을 연다

 

17. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64  : nano로 오픈한 파일의 가장 아래에 추가하고 저장한다. (JAVA_HOME을 추가한것) 

 

18. source $HADOOP_HOME/etc/hadoop/hadoop-env.sh   : 변경한 설정파일을 시스템에 적용시킨다

 

19. echo $JAVA_HOME   : 아까 설정한 JAVA_HOME의 값을 확인한다

 

20. nano $HADOOP_HOME/etc/hadoop/core-site.xml   : 하둡의 core-site.xml 파일 수정

 

21.

*파일내용의 하단부 <configuration> </configuration> 사이에 작성하고 저장

<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hdoop/tmpdata</value>
</property>
<property>
  <name>fs.default.name</name>
  <value>hdfs://127.0.0.1:9000</value>
</property>

 

↑ 하둡이 임시 디렉토리에 대한 작업을 어떻게 할것인지에 대한 설정

 

22. mkdir tmpdata   :  위 설정에서 <value>태그에 작성되있는 tmpdata 디렉토리를 만들어준다

 

23. nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml  : hdfs-site.xml 파일 수정

 

24. 파일을 열고 하단의 <configuration> </configuration> 사이에 작성

<property>
  <name>dfs.data.dir</name>
  <value>/home/hdoop/dfsdata/namenode</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/home/hdoop/dfsdata/datanode</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

 

#namenode : 서버의 master 노드 디렉토리 이름

#datanode : 서버의 slave 노드 디렉토리 이름

 

25. 위의 namenode, datanode 디렉토리가 없기 때문에 dfsdata디렉토리를 만들고 그 안에 namenode, datanode 생성

> mkdir dfsdata

> cd dfsdata

> mkdir namenode

> mkdir datanode

> ls  : 잘 만들어졌는지 확인

 

26. nano $HADOOP_HOME/etc/hadoop/mapred-site.xml  : 하둡의 mapreduce(쪼개진 파일들을 처리하는 방법론, 요즘은 spark를 더 쓰는 추세이다) 관련 파일 수정

 

27.  <configuration> </configuration> 사이에 작성 ↓

<property> 
  <name>mapreduce.framework.name</name> 
  <value>yarn</value> 
</property> 

 

28. nano $HADOOP_HOME/etc/hadoop/yarn-site.xml  : yarn 관련 파일 수정

 

29. <!-- Site specific YARN configuration properties --> </configuration> 사이에 작성 ↓

<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.hostname</name>
  <value>127.0.0.1</value>
</property>
<property>
  <name>yarn.acl.enable</name>
  <value>0</value>
</property>
<property>
  <name>yarn.nodemanager.env-whitelist</name>   
  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>

 

30. hdfs namenode -format  : hdfs를 위한 namenode 포멧

* HDFS : Hadoop Distributed File System 의 줄임말

 

31. start-dfs.sh

이와같은 3가지 프로세스가 작동되면 된다

32. jps  : java process가 잘 작동하는지 확인한다.

결과에 DataNode, SecondaryNameNode, NameNode     3가지가 있으면 된다

33. start-yarn.sh

위와같은 결과가 나오면 된다

34. jps

Jps를 제외한 5가지가 나오면 된다

 

35. 웹브라우저를 이용해 링크에 접속한다

     http://localhost:9870  << Namenode 관련 정보

     http://localhost:9864  << Datanode 관련 정보

     http://localhost:8088  << Yarn 관련 정보

 

36.

start-dfs.sh, start-yarn.sh 과 같은 실행 명령어들은

start-all.sh 을 이용해 한번에 모두 실행시키는것이 가능하다.

stop-all.sh : 모두 멈추는 명령어

'Hadoop' 카테고리의 다른 글

Python HDFS 사전 세팅  (0) 2021.09.07
HDFS 명령어 (feat. Ubuntu)  (0) 2021.09.07
Ubuntu 터미널 명령어(4) (feat. 정규표현식)  (0) 2021.09.06
Ubuntu 터미널로 파이썬 실행  (0) 2021.09.06
Ubuntu 터미널 명령어 (3)  (0) 2021.09.03

댓글