데이터 엔지니어링/빅데이터

Hadoop Standalone with Docker

Malachai Lee 2022. 5. 16. 23:52

서버용 OS로 인기가 많은 RedHat 기업의 RHEL(RedHat Enterprise Linux)의 유료화에 반발하여 만들어진 오픈소스 프로젝트 CentOS를 이용하여 컨테이너를 빌드한다.

 

참고 블로그:

 

하둡 완전분산 환경 설치 및 설정 (hadoop cluster setup)

안녕하세요, (주)씨앤텍시스템즈 신윤중입니다. 본 포스팅에선 하둡 완전분산환경(hadoop cluster setup)을 구축하는 방법과 간단하게 운영환경을 테스트 하는 과정을 소개하겠습니다. 글의 구성은

cntechsystems.tistory.com

 

하둡 3.1.2 설치 3편 - 독립실행모드(Standalone), 가상분산모드(Pseudo-distributed), 완전분산모드(Fully dist

1. 독립실행모드편 -> 하둡 3.1.2 설치 1편 - 독립실행모드(Standalone), 가상분산모드(Pseudo-distributed), 완전분산모드(Fully distributed) 2. 가상분산모드편 -> 하둡 3.1.2 설치 2편 - ...

parksuseong.blogspot.com

 

[Hadoop] 도커(Docker)로 하둡 설치하기 (Standalone)

하둡의 설치 방식에는 총 3가지 버전이 있다. 1. 독립실행모드(Standalone) 2. 가상분산모드(Pseudo-distributed) 3. 완전분산모드(Fully distributed) 이번 포스팅에서는 독립실행모드로 어떻게 설치하는지에

mungiyo.tistory.com

 

도커(Docker)에 하둡(Hadoop) 클러스터 띄우기

하둡 HDFS 코드리뷰를 진행하면서 테스트용 클러스터를 구축할 필요가 있었습니다. 실제 개발 장비에 설치되어 있는 하둡 클러스터를 이용해 볼 수 있었지만 도커에 하둡을 띄워보면 어떨까 생

soft.plusblog.co.kr

 

 

CentOS 이미지를 DockerHub로부터 가져온다.

> sudo docker pull centos:centos7
> sudo docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
centos                latest    5d0da3dc9764   8 months ago   231MB

CentOS 이미지를 사용하여 컨테이너를 실행한다.

> sudo docker run -it --name hadoop-base centos:centos7

컨테이너 내에서 필요 패키지를 설치한다.

> 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 설치

참고로, 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

 

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="."

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 //스크립트 파일 수정 이후에 수정된 값을 적용

 

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

'데이터 엔지니어링 > 빅데이터' 카테고리의 다른 글

Hadoop Fully-distributed with Docker  (0) 2022.05.17
Hadoop Pseudo-distributed with Docker  (0) 2022.05.16
HDFS  (0) 2022.05.16
HBase  (0) 2022.05.16
Oozie  (0) 2022.05.16