Immersion In Data

Hadoop

하둡 에코시스템(Hadoop Ecosystem)

sungjunminn 2022. 9. 21. 11:26

하둡 에코시스템(Hadoop Ecosystem)

하둡은 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈소스 프레임워크이다. 

간단한 프로그래밍 모델을 사용하여 여러대의 컴퓨터 클러스터에 대규모 데이터 세트를 분산 처리할 수 있게 해주는 프레임워크라고 할 수 있다. 

일반적으로 HDFS와 MapReduce 프레임워크로 시작되었으나, 여러 데이터 저장, 실행 엔진, 프로그래밍 및 데이터 처리와 같은 하둡 생태계(Hadoop Ecosystem) 전반을 포함하는 의미로 확장되었다. 하둡 에코시스템은 그 프레임워크를 이루고 있는 다양한 서브 프로젝트들의 모임이다.   

 

 

 

 - 하둡의 코어 프로젝트 : HDFS(분산 데이터 저장), MapReduce(분산 처리)

 - 하둡의 서브 프로젝트 : 나머지 프로젝트 → 워크플로우 관리, 데이터 마이닝, 분석, 수집, 직렬화 등

 

 

하둡 분산형 파일 시스템(Hadoop Distributed File System, HDFS)

하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일 시스템

하둡 분산 파일 시스템은 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템이다. HDFS는 여러 기계에 대용량 파일을 나눠서 저장한다. 데이터들을 여러 서버에 중복해서 저장하므로써 데이터 안정성을 얻는다. 

1. HDFS는 데이터를 저장하면, 다수의 노드에 복제 데이터도 함께 저장해서 데이터 유실을 방지

2. HDFS에 파일을 저장하거나, 저장된 파일을 조회하려면 스트리밍 방식으로 데이터에 접근

3. 한번 저장한 데이터는 수정할 수 없고, 읽기만 가능해서 데이터 무결성을 유지

4. 데이터 수정은 불가능하지만 파일 이동, 삭제, 복사할 수 있는 인터페이스 제공

https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html

 

HDFS Users Guide

HDFS Users Guide Purpose This document is a starting point for users working with Hadoop Distributed File System (HDFS) either as a part of a Hadoop cluster or as a stand-alone general purpose distributed file system. While HDFS is designed to "just work"

hadoop.apache.org

 

맵리듀스(MapReduce)

대용량의 데이터 처리를 위한 분산 프로그래밍 모델, 소프트웨어 프레임워크

맵리듀스 프레임워크를 이용하면 대규모 분산 컴퓨팅 화면에서 대량의 데이터를 병렬로 분석할 수 있다. 

프로그래머가 직접 작성하는 맵과 리듀스라는 두개의 메소드로 구성된다. 

https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html

 

MapReduce Tutorial

<!--+ |breadtrail +--> <!--+ |start Menu, mainarea +--> <!--+ |start Menu +--> <!--+ |end Menu +--> <!--+ |start content +--> MapReduce Tutorial Purpose This document comprehensively describes all user-facing facets of the Hadoop MapReduce framework and se

hadoop.apache.org

 

 

 

Zookeeper

분산 환경에서 서버들간에 상호 조정이 필요한 다양한 서비스를 제공하는 시스템

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

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

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

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

http://zookeeper.apache.org/

 

Apache ZooKeeper

<!-- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or ag

zookeeper.apache.org

 

 

Ooozie

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

자바 서블릿 컨테이너에서 실행되는 자바 웹 어플리케이션 버서로, MapReduce 작업이나 Pig 작업 같은 특화된 액션들로 구성된 워크플로우를 제어한다. 

http://incubator.apache.org/oozie

 

Oozie - Apache Oozie Workflow Scheduler for Hadoop

Overview Oozie is a workflow scheduler system to manage Apache Hadoop jobs. Oozie Workflow jobs are Directed Acyclical Graphs (DAGs) of actions. Oozie Coordinator jobs are recurrent Oozie Workflow jobs triggered by time (frequency) and data availability. O

oozie.apache.org

 

 

Hbase

HDFS의 컬럼 기반 데이터베이스

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

http://hbase.apache.org

 

Apache HBase – Apache HBase™ Home

Welcome to Apache HBase™ Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- bi

hbase.apache.org

 

 

Pig

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

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

http://pig.apache.org

 

Welcome to Apache Pig!

Welcome to Apache Pig! Apache Pig is a platform for analyzing large data sets that consists of a high-level language for expressing data analysis programs, coupled with infrastructure for evaluating these programs. The salient property of Pig programs is t

pig.apache.org

 

 

Hive

하둡 기반의 데이터웨어하우징용 솔루션

페이스북에서 만든 오픈소스로, SQL과 매우 유사한 HIVEQL이라는 쿼리를 제공한다. 자바를 잘 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와준다. HiveQL은 내부적으로 MapReduce  잡으로 변환되어 실행됩니다. 

http://hive.apache.org

 

Apache Hive

Apache Hive <!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you

hive.apache.org

 

 

Mahout

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

현재 분류(classification), 클러스터링(clustering), 추천 및 협업 필터링(Recommenders/Collavorative filtering), 패턴 마이닝(Patten Mining), 회귀 분석(Regression), 차원 리덕션(Dimension Reducton), 진화 알고리즘(Evolutionary Algorithms) 등 주요한 알고리즘을 지원한다. Mahout을 그대로 사용할 수도 있지만, 자신의 비즈니스 환경에 맞게 최적화 해서 사용하는 경우가 대부분이다.

http://mahout.apache.org

 

Apache Mahout

December 15, 2020 Trevor able to do Mahout in-core matrix addition in Python. Will continue working, but good first step. Want to see POC that DRMs will also “work” and then will sketch... Read Post →

mahout.apache.org

 

 

HCatalog

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

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

http://incubator.apache.org/hcatalog

 

Apache Hive

Apache Hive <!--- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you

hive.apache.org

 

 

Avro

RPC(Remote Procedure Call)과 데이터 직렬화를 지원하는 프레임워크

JSON을 이용해 데이터 형식과 프로토콜을 정의하며, 작고 빠른 바이너리 포맷으로 데이터를 직렬화한다. 

http://avro.apache.org

 

Apache Avro

 

avro.apache.org

 

 

Chukwa

분산 환경에서 생성되는 데이터를 HDFS에 안정적으로 저장시키는 플랫폼

분산된 각 서버에서 에이전트(agent)를 실행하고, 콜렉터(collector)가 에이전트로부터 데이터를 받아 HDFS에 저장한다. 콜렉터는 100개의 에이전트 당 하나씩 구동되며, 데이터 중복 제거 등의 작업은 MapReduce로 처리한다. 

http://incubator.apache.org/chukwa

 

Chukwa - Welcome to Apache Chukwa

About Apache Chukwa Apache Chukwa is an open source data collection system for monitoring large distributed systems. Apache Chukwa is built on top of the Hadoop Distributed File System (HDFS) and Map/Reduce framework and inherits Hadoop’s scalability and

chukwa.apache.org

 

Flume

Chukwa처럼 분산된 서버에 에이전트가 설치되고, 에이전트로부터 데이터를 전달받는 콜렉터로 구성

차이점은 전체 데이터의 흐름을 관리하는 마스터 서버가 있어 데이터를 어디서 수집하고, 어떤 방식으로 전송하고, 어디에 저장할 지를 동적으로 변경할 수 있다. 

http://incubator.apache.org/projects/flume.html

 

Flume Incubation Status - Apache Incubator

This page tracks the project status, incubator-wise. For more general project status, look on the project website. The Flume project graduated on 2012-06-20 Flume is a distributed, reliable, and available system for efficiently collecting, aggregating, and

incubator.apache.org

 

 

Scribe

페이스북에서 개발한 데이터 수집 플랫폼이며, Chuckwa와는 다르게 데이터를 중앙 집중 서버로 전송하는 방식

최종 데이터는 HDFS외에 다양한 저장소를 활용할 수 있으며, 설치와 구성이 쉽게 다양한 프로그램 언어를 지원한다. HDFS에 저장하기 위해서는 JNI(Java Native Interface)를 이용해야 한다. 

https://github.com/facebook/scribe

 

GitHub - facebookarchive/scribe: Scribe is a server for aggregating log data streamed in real time from a large number of server

Scribe is a server for aggregating log data streamed in real time from a large number of servers. - GitHub - facebookarchive/scribe: Scribe is a server for aggregating log data streamed in real tim...

github.com

 

 

Sqoop

대용량 데이터 전송 솔루션

Sqoop은 HDFS, RDBMS, DW, NoSQL 등 다양한 저장소에 대용량 데이터를 신속하게 전송할 수 있는 방법을 제공

Oracle, MS-SQL, DB2 등과 같은 상용 RDBMS와 MySQL, PostgresSQL과 같은 오픈소스 RDBMS등을 지원한다. 

http://sqoop.apache.org

 

Sqoop -

<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apa

sqoop.apache.org

 

 

Hiho

대용량 데이터 전송 솔루션하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스를 지원한다. 

https://github.com/sonalgoyal/hiho

 

GitHub - sonalgoyal/hiho: Hadoop Data Integration with various databases, ftp servers, salesforce. Incremental update, dedup, ap

Hadoop Data Integration with various databases, ftp servers, salesforce. Incremental update, dedup, append, merge your data on Hadoop. - GitHub - sonalgoyal/hiho: Hadoop Data Integration with vario...

github.com

 

 

Impala

클라우드데라에서 개발한 하둡 기반의 실시간 SQL 질의 시스템맵리듀스를 사용하지 않고, 자체 개발한 엔진을 사용해 빠른 성능을 보여준다. 임팔라(Impala)는 데이터 조회를 위한 인터페이스로, HiveQL을 사용합니다. 수초 내에 SQL 질의 결과를 확인할 수 있으며, HBase와 연동이 가능하다. 

https://github.com/cloudera/impala

 

GitHub - cloudera/Impala: Real-time Query for Hadoop; mirror of Apache Impala

Real-time Query for Hadoop; mirror of Apache Impala - GitHub - cloudera/Impala: Real-time Query for Hadoop; mirror of Apache Impala

github.com

 

 

Tajo

고려대학교 정보통신대학 컴퓨터학과 DB연구실 박사 과정 학생들이 주도해서 개발한 하둡 기반의 DW 시스템데이터 저장소는 HDFS를 사용하되, 표준 DB언어인 SQL을 통해 실시간으로 데이터를 조회할 수 있다. Hiv보다 2~3배 빠르며, 클라우드데라의 임팔라(Impala)와는 비슷한 속도를 보여준다. 임팔라가 클라우드데라의 하둡을 써야 하는 제약에 비해, 특정 업체의 솔루션에 종속되지 않는 장점이 있다. 

http://tajo.incubator.apache.org

 

Tajo - A Big Data Warehouse System on Hadoop -

Apache Tajo™: A big data warehouse system on Hadoop Apache Tajo is a robust big data relational and distributed data warehouse system for Apache Hadoop. Tajo is designed for low-latency and scalable ad-hoc queries, online aggregation, and ETL (extract-tr

tajo.incubator.apache.org

 

 

'Hadoop' 카테고리의 다른 글

Hadoop 설치  (0) 2022.12.06
맵리듀스(MapReduce)  (0) 2022.09.21
하둡 분산형 파일 시스템(Hadoop Distributed File System, HDFS)  (0) 2022.09.21