1] ubuntu에 open-jdk 설치하기
- hadoop 2.x 대 사용시, jdk 7version 설치 필수! (8은 hadoop 3.0 이상부터 지원)
$ sudo apt update
# 상황에따라 다른 open jdk를 사용할 수도 있음 (ex) julu-openjdk-8 등..)
$ sudo apt install openjdk-8-jdk -y
# Java 설치확인
$ java -version
$ javac -version
2] 계정 생성 (선택)
=> 클러스터를 효과적으로 관리할 수도 있고, 보안에도 좋기에 하둡만을 위한 계정을 생성. (상황에따라 다른 계정도 사용)
# localhost랑 ssh통신을 위한 openssh-server openssh-client 설치
# window os에서 ubuntu shell에 접속하기 위한 조치이므로, 필요한 경우에 설치 및 적용
$ sudo apt install openssh-server openssh-client -y
# 계정 추가 및 비밀번호 설정
$ sudo adduser hdoop[계정명]
$ su hdoop[계정명]
# /home/hdoop[계정명]에서 비밀번호없는 ssh통신 가능하도록 변경
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id-rsa
$ cat ~/.ssh/id-rsa.pub >> ~/.ssh/authorized-keys
$ chmod 0600 ~/.ssh/authorized-keys
$ ssh localhost
= 결과
3] 하둡 설치
# 하둡 다운로드
$ wget https://archive.apache.org/dist/hadoop/core/hadoop-3.2.2/hadoop-3.2.2.tar.gz
# 압축풀기
$ tar xvfz hadoop-3.2.2.tar.gz
4] Configuration Files Set Up
- bashrc
(가장 아래부분에 추가)
#Hadoop Related Options
export HADOOP_HOME=/home/hdoop/hadoop-3.2.2 # 설치경로 계정명
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"
$ source ~/.bashrc
- hadoop-env.sh
# yarn, HDFS, MapReduce 하둡프로젝트 관련 프로젝트 세팅 관련 파일
# JAVA_HOME 설정
........
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
........
# Java Path 확인
$ which javac
/usr/bin/javac
$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-openjdk-amd-64/bin/javac
- core-site.xml
: HDFS와 Hadoop 핵심 property들을 정의하는 파일
# localhost 기준 기본 설정
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdoop/tmpdata</value> # 설치경로 계정명
</property>
<property>
<name>fs.default.name</name> # Deprecated. Use [fs.defaultFS]
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
속성관련 name, default value 공식문서: https://hadoop.apache.org/docs/r3.2.2/hadoop-project-dist/hadoop-common/core-default.xml
- hdfs-site.xml
: DataNode와 NameNode의 저장소 디렉터리를 설정하는 파일 (파일 별도 문의)
# localhost 기준 기본 설정
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hdoop/dfsdata/namenode</value> # 설치경로 계정명
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hdoop/dfsdata/datanode</value> # 설치경로 계정명
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
속성관련 name, default value 공식문서: https://hadoop.apache.org/docs/r3.2.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
- mapred-site.xml
: MapReduce 파일의 값을 정의하기 위한 파일
# localhost 기준 기본 설정
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
속성관련 name, default value 공식문서: https://hadoop.apache.org/docs/r3.2.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
- yarn-site.xml
: YARN에 관련된 세팅을 정의하는 파일
# localhost 기준 기본 설정
<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>
</configuration>
속성관련 name, default value 공식문서: https://hadoop.apache.org/docs/r3.2.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
5] Format HDFS NameNode
# Hadoop 서비스를 처음 시작하기전, NameNode를 초기화
$ hdfs namenode -format
6] 하둡 클러스터 시작하기
$ hadoop-3.2.2/sbin/start-dfs.sh
$ hadoop-3.2.2/sbin/start.yarn.sh
$ jps
7] Hadoop UI Browser 접속
=> [서버 domain]:9870
= 참고자료
'Hadoop' 카테고리의 다른 글
Hadoop - HDFS 명령어 (0) | 2021.09.13 |
---|---|
Hadoop - MapReduce 프로그래밍 (0) | 2021.09.13 |
Hadoop - 하둡이란?? (0) | 2021.09.13 |