서버용 OS로 인기가 많은 RedHat 기업의 RHEL(RedHat Enterprise Linux)의 유료화에 반발하여 만들어진 오픈소스 프로젝트 CentOS를 이용하여 컨테이너를 빌드한다.
CentOS 이미지를 DockerHub로부터 가져온다.
> sudo docker pull centos:centos7
> sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 8 months ago 231MB
Plain Text
복사
CentOS 이미지를 사용하여 컨테이너를 실행한다.
> sudo docker run -it --name hadoop-base centos:centos7
Plain Text
복사
컨테이너 내에서 필요 패키지를 설치한다.
> yum update
> yum install wget -y //hadoop 설치를 위한 wget
> yum install vim -y //vim 에디터
> yum install java-1.8.0-openjdk-devel.x86_64 -y //Java 설치
Plain Text
복사
참고로, yum 연결이 되지 않을 땐 DNS 운영 서버인 Nameserver를 정해주어야 한다.
vi etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 8.8.8.8
Plain Text
복사
Java 환경변수를 설정한다.
> which java
/usr/lib/java
> readlink -f /usr/lib/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
> vim ~/.bashrc
# ~/.bashrc 파일 내용들
...
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_OPTS="-Dfile.encoding=UTF-8"
export CLASSPATH="."
Shell
복사
Hadoop을 설치하고 환경변수를 설정한다.
> mkdir /hadoop_home //hadoop 홈 디렉토리로 쓸 디렉토리 생성
> cd /hadoop_home
> wget https://mirrors.sonic.net/apache/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
> tar xvzf hadoop-3.3.1.tar.gz //hadoop 설치 및 압축풀기
> vim ~/.bashrc
# ~/.bashrc 파일 내용들
...
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_OPTS="-Dfile.encoding=UTF-8"
export CLASSPATH="."
export HADOOP_HOME=/hadoop_home/hadoop-3.3.1
export HADOOP_CONFIG_HOME=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
> source ~/.bashrc //스크립트 파일 수정 이후에 수정된 값을 적용
Shell
복사
Hadoop 설치 이후 MapReduce를 테스트 해본다. Hadoop의 LICENSE.txt 파일을 wordcount 한다.
> hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount $HADOOP_HOME/LICENSE.txt wordcount_output
> cat wordcount_output/part-r-00000
"AS 2
"Contribution" 1
"Contributor" 1
"Derivative 1
...
written 1
you 2
your 4
Plain Text
복사