데이터과학 삼학년

Hadoop Ecosystem 하둡 에코시스템 간단정리 본문

Hadoop

Hadoop Ecosystem 하둡 에코시스템 간단정리

Dan-k 2022. 10. 2. 17:55
반응형

하둡 에코시스템(Hadoop EcoSystem)

하둡은 빅데이터의 처리를 위해서 주로 HDFS(Hadoop Distributed FileSystem)이라는 분산 데이터 저장과

빅데이터 처리를 위한 방식인 MapReduce방식으로 이루어져 있다.

빅데이터 시대의 도래로 이런 하둡을 좀 더 편하게, 그리고 단점은 수정하여 쉽게 잘 이용하는 여러 서브 프로젝트들이 진행되어 왔다. 그 서브 프로젝트의 모임을 하둡 에코 시스템이라고 한다.

https://1004jonghee.tistory.com/m/entry/1004jonghee-%ED%95%98%EB%91%A1%EC%97%90%EC%BD%94%EC%8B%9C%EC%8A%A4%ED%85%9CHadoop-Eco-System-Ver-10?category=419383%EF%BB%BF

하둡 에코시스템 목적별 분류

분산환경 관리자

ZooKeeper

주키퍼는 야후에서 처음 개발되었다. 하둡을 보면 서브프로젝트들이 대부분 동물들로 이름을 짓는다...ㅋㅋㅋ

하둡이 코끼리에서 시작해서 그런가...아무튼 이러한 동물들을 관리하는 사육사로서 분산 환경을 관리한다는 의미로 zookeeper라고 지은 듯하다.

- 하나의 서버에만 서비스가 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리하게 해줌

- 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화 -> 데이터 안정성 보장

- 운영(active) 서버에서 문제가 발생해 서비스를 제공할 수 없는 경우, 다른 대기중인 서버를 운영 서버로 바꿔 서비스가 중지없이 제공되게 해줌

- 분산 환경을 구성하는 서버들의 환경설정을 통합적으로 관리

 

데이터 수집 / 저장

- 원천 데이터를 수집하는 기술로 크게 배치 데이터 수집과 실시간 데이터 수집 기술로 나눌수 있음

Flume

분산된 서버에 에이전트가 설치되고 각 에이전트가 데이터를 전달받는 구조

전체 데이터 흐름을 관리하는 마스터 서버가 데이터의 수집 위치와 전송방식을 결정하여 동적으로 변경 가능함 

Kafka

실시간 데이터, 스트림 데이터를 관리하기 위한 분산 메시징 시스템 - 링크드인에서 개발

HBase

NoSQL 용 HDFS의 칼럼 기반 데이터베이스, 구글의 BigTable 논문을 기반으로 개발된 것으로, 실시간 랜덤 조회 및 업데이트가 가능하며, 각각의 프로세스들은 개인의 데이터를 비동기적으로 업데이트 할 수 있다. 단, MapReduce는 일괄처리 방식으로 수행된다. 

HCatalog

하둡으로 생성한 데이터를 위한 테이블 및 스토리지 관리 서비스

 HCatalog의 가장 큰 장점은 하둡 에코 시스템들간의 상호 운용성 향상이다. 예를 들어 Hive에서 생성한 테이블이나 데이터 모델을 Pig MapReduce에서 손쉽게 이용할 수가 있다.

 

데이터 처리

Hive

하둡 기반의 데이터웨어하우징용 솔루션. 페이스북에서 만든 오픈소스로, SQL과 매우 유사한 HiveQL이라는 쿼리를 제공한다. 그래서 자바를 잘 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와준다.

HiveQL은 내부적으로 MapReduce 잡으로 변환되어 실행된다.

Impala

하이브보다 빠르다. 하이브 이후 개발클라우드데라에서 개발한 하둡 기반의 실시간 SQL 질의 시스템

맵리듀스를 사용하지 않고, 자체 개발한 엔진을 사용해 빠른 성능을 보여줍니다. 

임팔라(Impala)는 데이터 조회를 위한 인터페이스로, HiveQL을 사용합니다. 수초 내에 SQL 질의 결과를 확인할 수 있으며, HBase와도 연동이 가능합니다.

Tajo

고려대학교 정보통신대학 컴퓨터학과 DB연구실 박사 과정학생들이 주도해서 개발한 하둡 기반의 DW 시스템.

데이터 저장소는 HDFS를 사용하되, 표준DB언어인 SQL을 통해 실시간으로 데이터를 조회할 수 있습니다. Hive보다 2 ~ 3배 빠르며, 클라우드데라의 임팔라(Impala)와는 비슷한 속도를 보여줍니다. 임팔라가 클라우드데라의 하둡을 써야 하는 제약에 비해, 특정 업체 솔루션에 종속되지 않는 장점이 있습니다.

Pig

복잡한 MapReduce 프로그래밍을 대체할 Pig Latin이라는 자체 언어를 제공.

MapReduce API를 매우 단순화시키고 SQL과 유사한 형태로 설계되었다. 

Spark

맵리듀스와 비슷한 목적의 업무를 활용하지만, 메모리 기반에서 운영되어 매우 빠른 속도로 처리

python, R, SQL, scala 등 언어로 활용할 수 있음

Mahout

하둡 기반 데이터 마이닝 알고리즘을 구현한 오픈소스.

현재 분류(classification), 클러스터링(clustering), 추천 및 협업 필터링(Recommenders/Collavorative filtering), 패턴 마이닝(Pattern Mining), 회귀 분석(Regression), 차원 리덕션(Dimension Reduction), 진화 알고리즘(Evolutionary Algorithms) 등 주요한 알고리즘을 지원함

Mahout을 그대로 사용할 수도 있지만, 자신의 비즈니스 환경에 맞게 최적화 해 사용하는 경우가 대부분

 

데이터 시각화 및 사용자 인터페이스

Zeppelin

jupyter notebook과 비슷하게 생겼다. 웹기반의 workspace안에 python, hive, spark 등 다양한 솔루션의 api를 호출하여 결과를 가져오고, 이를 시각화할 수 있음

HUE

Hadoop User Experience로 하둡과 하둡 에코시스템을 잘..편하게 활용할 수 있도록 제공한 웹 인터페이스다.

여기서 hive sql (HSQL)을 기반으로 데이터를 조회할 수 있으며, 시각화도 바로 가능.

추가로 job의 스케쥴링까지 걸 수 있음

 

워크플로우 관리

Ooozie

하둡의 작업을 관리하는 워크플로우 및 코디네이터 시스템이다.

Directed Acyclical Graphs(DAGs)라는 개념으로 workflow를 만들어 작업을 실행하게 되고,

자바 서블릿 컨테이너에서 실행되는 자바 웹어플리케이션 서버로,

java-MapReduce, streaming-MapReduce, Pig, Hive, Sqoop 등과 같은 작업에서도 잘 호환되어 사용되며, scalable함

Airflow

에어비앤비에서 개발한 DAGs기반의 워크플로우로, 각 잡의 흐름 시각화 및 스케쥴링, 모니터링이 가능함

파이썬기반으로 워크플로우를 작성할 수 있음

 

참조

https://butter-shower.tistory.com/73

https://pythontoomuchinformation.tistory.com/474

 

 

728x90
반응형
LIST

'Hadoop' 카테고리의 다른 글

Spark DataFrame vs Pandas DataFrame  (0) 2023.05.31
[Spark] 사용자 정의함수(UDF)  (0) 2023.03.06
Comments