Hadoop Ecosystem Install Guide

-1. 개요

이 책의 목표는 Hadoop EcoSystem 기반으로 LakeHouse 아키텍처 구성과 구축, 그리고 ETL 구현 방법을 어떻게 하는지 이론과 실습을 통해서 배우고 신입부터 1년차 개발자가 데이터 엔지니어 직무를 수행할 수 있도록 역량을 양성하는 것이 목표이다.

생각보다 데이터 엔지니어가 알고 있어야 하는 지식의 범위가 넓다. 그래서 신입 부터 3년차 개발자가 이해하기 어렵거나 실습 진행이 안되는 부분이 있을 수도 있다. 그런 부분은 부록에 자세히 남겨 놓았으니, 막히는 부분을 만나게 되면 지체없이 부록을 보기 바란다.

P.S 이 책을 읽으면서 데이터 엔지니어링에 흥미를 느끼고 하나라도 배워가는 유익한 시간이 되기를 바란다.

0. 설치 진행 시, 유의사항

이 책의 실습 환경은 클라우드 환경이 아닌, 온프레미스(로컬PC) 환경이고 온프레미스 환경의 단점을 극복하기 위해서 도커를 이용한 컨테이너 기반으로 하둡 에코시스템을 구성하였다. 그래서 모두 실습은 컨테이너 기반으로 진행된다. 만약, 도커에 대한 기본적인 이해리눅스 기반의 서버에 대한 이해가 없다면 부록A를 먼저 정독 후, 다시 돌아와서 읽기를 바란다.

Hadoop 관련 Ecosystem 실행은 ${*HADOOP_HOME*}/sbin 하위에 있는 start-all.sh로 실행하지 말고, ${*HADOOP_HOME*}/bin 하위에 있는 각각의 프로그램 실행 명령어를 사용해서 필요한 daemon을 실행할 노드에서 하나씩 실행시키자.

각 프로그램 실행 명령어를 사용해서 daemon을 실행하는 이유는 하나의 노드에 해당하는 프로그램의 모든 daemon을 실행하지 않고 분산해서 실행해야 하는 케이스가 존재하기 때문이다. 예를 들면, Yarn의 경우 RM(ResourceManager)와 NodeManager(NM) 2개의 데몬을 서비스하는데 RM의 경우는 NameNode가 실행되는 서버(노드)에서 실행하고 NM의 경우는 DataNode에서 실행하기 때문이다.

1. 구성

물리적 구성은 아래의 구성도를 참고 바란다. 실 서비스 환경에서 Hadoop Cluster 구축하는 경우, 하나의 물리적 서버에 모든 서비스를 실행하지 않는다.

물리적 서버 구성도

환경

비즈니스 구성도