하둡 에코 시스템 | Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \U0026 Hadoop 1 225 개의 베스트 답변

당신은 주제를 찾고 있습니까 “하둡 에코 시스템 – Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \u0026 Hadoop 1“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 AI \u0026 Big Data Education Center 이(가) 작성한 기사에는 조회수 2,220회 및 716167 Like 개의 좋아요가 있습니다.

하둡 에코 시스템 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \u0026 Hadoop 1 – 하둡 에코 시스템 주제에 대한 세부정보를 참조하세요

http://abedu.co.kr

하둡 에코 시스템 주제에 대한 자세한 내용은 여기를 참조하세요.

하둡 에코시스템(Hadoop-Ecosystem)이란

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

+ 여기에 더 보기

Source: butter-shower.tistory.com

Date Published: 4/20/2022

View: 8590

Hadoop Eco System (하둡 에코 시스템) – velog

분산 스트리밍 플랫폼으로, 데이터 파이프 라인을 구축할 때 주로 사용되는 오픈소스 솔루션 · 데이터 Stream(흐름)을 실시간으로 관리하기 위한 분산 …

+ 더 읽기

Source: velog.io

Date Published: 1/6/2021

View: 8697

하둡 에코시스템(Hadoop-Ecosystem)이란? – 빅데이터는 넘커

하둡 에코시스템(Hadoop-Ecosystem)이란? 앞선 포스트에서 하둡을 분산 프로그래밍 프레임워크라고 설명했는데, 하둡 에코시스템이 바로 그 프레임 …

+ 여기에 더 보기

Source: over153cm.tistory.com

Date Published: 11/21/2021

View: 5009

Hadoop의 다양한 기능/서브 프로젝트들 (하둡 에코시스템)

하둡 에코시스템이란? Hadoop EcoSystem 빅데이터는 수집, 정제, 적재, 분석, 시각화의 여러 단계를 거친다. 이 단계를 거치는 동안 여러가지 기술을 …

+ 자세한 내용은 여기를 클릭하십시오

Source: pythontoomuchinformation.tistory.com

Date Published: 4/15/2021

View: 9419

하둡 에코시스템(Hadoop Eco System) – 비트코기의 IT Note

하둡 에코시스템(Hadoop Eco System)의 정의 – 하둡을 효율적으로 적용 가능한 서브 프로젝트가 많이 상용화 되면서 그것들의 집합, 하둡 생태계 II.

+ 더 읽기

Source: itpenote.tistory.com

Date Published: 4/27/2022

View: 419

3-빅데이터 에코시스템 – 빅데이터 – 하둡, 하이브로 시작하기

하둡 휴(Hue, Hadoop User Experience)는 하둡과 하둡 에코시스템의 지원을 위한 웹 인터페이스를 제공하는 오픈 소스 입니다. Hive 쿼리를 실행하는 인터페이스를 제공 …

+ 여기를 클릭

Source: wikidocs.net

Date Published: 2/16/2022

View: 619

하둡 에코시스템이란 무엇입니까? – Databricks

Apache Hadoop 에코시스템이란 Apache Hadoop 소프트웨어 라이브러리를 이루는 다양한 구성 요소를 말합니다. 오픈 소스 프로젝트는 물론 광범위한 보조 툴이 많습니다 …

+ 여기를 클릭

Source: www.databricks.com

Date Published: 10/6/2022

View: 8883

hadoop 총정리 2편 – 인코덤, 생물정보 전문위키

하둡과 관련된 프레임워크들을 하둡 에코시스템이라 한다. 하둡 코어 프로젝트(HDFS, MapReduce)와 하둡 서브 프로젝트(수집, 분석, 마이닝 등)로 구성 …

+ 여기를 클릭

Source: www.incodom.kr

Date Published: 7/9/2022

View: 751

[ 빅데이터 플랫폼 ] 하둡 에코시스템(Hadoop-Ecosystem)

[ 빅데이터 플랫폼 ] 하둡 에코시스템(Hadoop-Ecosystem) … 하둡 프레임워크 상에 존재하는 다양한 서브프로젝트들의 집합이라고 생각하면 된다. 하나하나 …

+ 자세한 내용은 여기를 클릭하십시오

Source: ffoorreeuunn.tistory.com

Date Published: 12/25/2022

View: 6094

주제와 관련된 이미지 하둡 에코 시스템

주제와 관련된 더 많은 사진을 참조하십시오 Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \u0026 Hadoop 1. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

Hadoop Ecosystem의 이해와 활용 - Hadoop 소개 \u0026 Hadoop 1
Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \u0026 Hadoop 1

주제에 대한 기사 평가 하둡 에코 시스템

  • Author: AI \u0026 Big Data Education Center
  • Views: 조회수 2,220회
  • Likes: 716167 Like
  • Date Published: 2019. 4. 24.
  • Video Url link: https://www.youtube.com/watch?v=-iAQdFiIJhE

하둡 에코시스템(Hadoop-Ecosystem)이란

글 작성자: _rian

시작하기 앞서.. (내가 했던 그리고 쉽게들 하는) 하둡에 대한 오해

1. 하둡은 빅데이터에만 사용된다?

많은 사람들은 하둡이라고 하면 방대한 양의 빅데이터부터 연상을 한다. 물론 나름대로 합당한 이유가 있긴 하다. 그러나 하둡의 활용은 빅데이터를 훨씬 넘어선다. 하둡의 가장 강력한 능력 가운데 하나는 바로 확장성이다. 이를 바탕으로 페이스북과의 관계를 유지하고 있을 뿐 아니라 얼마든지 규모를 축소시켜 저렴한 저장소와 데이터 관리를 원하는 기업들에게도 맞출 수 있다.

2. 하둡은 NoSQL 툴이다?

하둡이 비관계형 DBMS(NDBMS)에 속하는 것은 맞지만, 그렇다고 SQL 쿼리 언어를 사용하지 못하는 것은 아니다. 사실 이건 NoSQL의 정의는 아니긴 하지만..!!!! NoSQL이란 SQL 뿐만 아니라 다른 쿼리 시스템에서도 사용될 수 있는 데이터베이스를 표현하는 용어다. 사실 하둡에서는 SQL과 유사한 쿼리 언어들을 상당히 쉽게 이용할 수 있다.

그래서 하둡 에코시스템(Hadoop EcoSystem)이 뭔데??

하둡의 코어 프로젝트는 HDFS와 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 출처 : 시작하세요! 하둡 프로그래밍(위키북스)

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

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

하둡의 코어 프로젝트는 이전 포스팅에 작성했으니, 서브 프로젝트들을 한번 살펴보자!

Zookeeper

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

하나의 서버에만 서비스가 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리하게 해줌 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화 -> 데이터 안정성 보장 운영(active) 서버에서 문제가 발생해 서비스를 제공할 수 없는 경우, 다른 대기중인 서버를 운영 서버로 바꿔 서비스가 중지없이 제공되게 해줌 분산 환경을 구성하는 서버들의 환경설정을 통합적으로 관리

공식 사이트 : http://zookeeper.apache.org/

Ooozie

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

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

공식 사이트 : http://incubator.apache.org/oozie

HBase

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

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

공식 사이트 : http://hbase.apache.org

Pig

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

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

공식 사이트 : http://pig.apache.org

Hive

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

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

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

공식 사이트 : http://hive.apache.org

Mahout

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

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

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

공식 사이트 : http://mahout.apache.org

HCatalog

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

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

공식 사이트: http://incubator.apache.org/hcatalog

Avro

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

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

공식 사이트: http://avro.apache.org

Chukwa

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

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

공식 사이트: http://incubator.apache.org/chukwa

Flume

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

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

공식 사이트: http://incubator.apache.org/projects/flume.html

Scribe

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

최종 데이터는 HDFS외에 다양한 저장소를 활용할 수 있으며, 설치와 구성이 쉽게 다양한 프로그램 언어를 지원함.

HDFS에 저장하기 위해서는 JNI(Java Native Interface)를 이용해야 한다.

공식 사이트: https://github.com/facebook/scribe

Sqoop

대용량 데이터 전송 솔루션.

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

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

공식 사이트: http://sqoop.apache.org

Hiho

Sqoop과 같은 대용량 데이터 전송 솔루션이며, 현재 github에서 공개되어 있습니다. 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스를 지원합니다.

공식 사이트: https://github.com/sonalgoyal/hiho

Impala

클라우드데라에서 개발한 하둡 기반의 실시간 SQL 질의 시스템

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

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

공식 사이트 : https://github.com/cloudera/impala

Tajo

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

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

공식 사이트 : http://tajo.incubator.apache.org

Reference

하둡 에코시스템(Hadoop-Ecosystem)이란?

하둡 에코시스템(Hadoop-Ecosystem)이란?

앞선 포스트에서 하둡을 분산 프로그래밍 프레임워크라고 설명했는데, 하둡 에코시스템이 바로 그 프레임워크를 이루고 있는 다양한 서브 프로젝트들의 모임이라고 보면 된다.

아래 그림은 하둡 에코시스템을 나타낸 것이다.

[그림 출처: 시작하세요! 하둡 프로그래밍(위키북스)]

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

하둡 서브 프로젝트: 나머지 프로젝트들 -> 데이터 마이닝, 수집, 분석 등을 수행

하둡 에코시스템을 이루고 있는 서브 프로젝트들에 대해 간단히 알아보자.

l Zookeeper

분산 환경에서 서버들간에 상호 조정이 필요한 다양한 서비스를 제공하는 시스템입니다. 첫째, 하나의 서버에만 서비스가 집중되지 않도록, 서비스를 알맞게 분산하여 동시에 처리하게 해줍니다. 둘째, 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화하여 데이터의 안정성을 보장해줍니다. 셋째, 운영(active) 서버가 문제가 발생해서 서비스를 제공할 수 없을 경우, 다른 대기 중인 서버를 운영서버로 바꿔서 서비스가 중지 없이 제공되게 해줍니다. 넷째, 분산 환경을 구성하는 서버들의 환경설정을 통합적으로 관리해줍니다. (공식 사이트: http://zookeeper.apache.org/)

l Ooozie

하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템입니다. 자바 서블릿 컨테이너에서 실행되는 자바 웹 애플리케이션 서버이며, MapReduce 작업이나 Pig 작업 같은 특화된 액션들로 구성된 워크 플로우를 제어합니다. 참고로 2011년 7월에 아파치 인큐베이션에 포함됐습니다. (공식 사이트: http://incubator.apache.org/oozie)

l HBase

HDFS 기반의 칼럼 기반 데이터 베이스입니다. 구글의 BigTable 논문을 기반으로 개발됐습니다. 실시간 랜덤 조회 및 업데이트가 가능하며, 각 각의 프로세스들은 개인의 데이터를 비동기적으로 업데이트할 수 있습니다. 단, MapReduce는 일괄 처리 방식으로 수행됩니다. 트위터, 야후, 어도비 같은 해외 업체들이 HBase를 사용하고 있으며, 국내에서는 얼마 전 NHN이 모바일 메신저인 라인에 HBase를 적용한 시스템 아키텍처를 발표하였습니다. (공식 사이트: http://hbase.apache.org)

l Pig

야후에서 개발되었으나 현재는 아파치 프로젝트에 속해있습니다. 복잡한 MapReduce 프로그래밍을 대체할 Pig Latin이라는 자체 언어를 제공합니다. MapReduce API를 매우 단순화시키고, SQL과 유사한 형태로 설계됐습니다. SQL과 유사하기만 할 뿐, 기존 SQL 지식을 활용하는 것이 어려운 편입니다. (공식 사이트: http://pig.apache.org)

l Hive

하둡 기반의 데이터웨어하우징용 솔루션입니다. 페이스북에서 개발됐으며, 오픈 소스로 공개되며 주목을 받은 기술입니다. SQL과 매우 유사한 HiveQL이라는 쿼리를 제공합니다. 그래서 자바를 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와줍니다. HiveQL은 내부적으로 MapReduce 잡으로 변환되어 실행됩니다. (공식 사이트: http://hive.apache.org)

l Mahout

하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈 소스입니다. 현재 분류 (classification), 클러스터링 (clustering), 추천 및 협업 필터링 (Recommenders/collaborative filtering), 패턴 마이닝 (Pattern Mining), 회귀 분석 (Regression), 차원 리덕션 (Dimension reduction), 진화 알고리즘 (Evolutionary Algorithms) 등 중요한 알고리즘을 지원하고 있습니다. Mahout을 그대로 사용할 수도 있지만, 자신의 비즈니스 환경에 맞게 최적화해서 사용하는 경우가 많습니다. (공식 사이트: http://mahout.apache.org)

l HCatalog

하둡으로 생성한 데이터를 위한 테이블 및 스토리지 관리 서비스입니다. HCatalog의 가장 큰 장점은 하둡 에코 시스템들간의 상호 운용성 향상입니다. 예를 들어 Hive에서 생성한 테이블이나 데이터 모델을 Pig나 MapReduce에서 손쉽게 이용할 수가 있는 것입니다. 물론 그 전에도 에코 시스템간에 데이터 모델 공유가 불가능한 것은 아니었지만, 상당한 백엔드 작업이 필요했습니다. (공식 사이트: http://incubator.apache.org/hcatalog)

l Avro

RPC(Remote Procedure Call)과 데이터 직렬화를 지원하는 프레임워크입니다. JSON을 이용해 데이터 형식과 프로토콜을 정의하며, 작고 빠른 바이너리 포맷으로 데이터를 직렬화합니다. (공식 사이트: http://avro.apache.org)

l Chukwa

분산 환경에서 생성되는 데이터를 HDFS에 안정적으로 저장시키는 플랫폼입니다. 분산된 각 서버에서 에이전트(agent)를 실행하고, 콜랙터(collector)가 에이전트로부터 데이터를 받아 HDFS에 저장합니다. 콜렉터는 100개의 에이전트당 하나씩 구동되며, 데이터 중복 제거 등의 작업은 MapReduce로 처리합니다. 야후에서 개발됐으며, 현재는 아파치 인큐베이션에 포함되어 있습니다. (공식 사이트: http://incubator.apache.org/chukwa)

l Flume

Chukwa 처럼 분산된 서버에 에이전트가 설치되고, 에이전트로부터 데이터를 전달받는 콜랙터로 구성됩니다. 차이점은 전체 데이터의 흐름을 관리하는 마스터 서버가 있어서, 데이터를 어디서 수집하고, 어떤 방식으로 전송하고, 어디에 저장할 지를 동적으로 변경할 수가 있습니다. 클라우드데라에서 개발됐으며, 현재는 아파치 인큐베이션에 포함되어 있습니다. (공식 사이트: http://incubator.apache.org/projects/flume.html)

l Scribe

페이스북에서 개발한 데이터 수집 플랫폼이며, Chukwa와는 다르게 데이터를 중앙 집중 서버로 전송하는 방식입니다. 최종 데이터는 HDFS외에 다양한 저장소를 활용할 수 있으며, 설치와 구성이 쉽게 다양한 프로그램 언어를 지원합니다. HDFS에 저장하기 위해서는 JNI(Java Native Interface)를 이용해야 합니다. (공식 사이트: https://github.com/facebook/scribe)

l Sqoop

대용량 데이터 전송 솔루션이며, 올해 4월 아파치의 top-level 프로젝트가 됐습니다. Sqoop은 HDFS, RDBMS, DW, NoSQL등 다양한 저장소에 대용량 데이터를 신속하게 전송할 수 있는 방법을 제공합니다. Oracle, MS-SQL, DB2 등과 같은 상용 RDBMS와 MySQL, PostgresSQL과 같은 오픈소스 RDBMS등을 지원합니다. (공식 사이트: http://sqoop.apache.org)

l Hiho

Sqoop과 같은 대용량 데이터 전송 솔루션이며, 현재 github에서 공개되어 있습니다. 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스를 지원합니다. 현재는 Oracle과 MySQL의 데이터 전송만 지원합니다. (공식 사이트: https://github.com/sonalgoyal/hiho)

l Impala

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

l Tajo

고려대학교 정보통신대학 컴퓨터학과 DB연구실 박사 과정학생들이 주도해서 개발한 하둡 기반의 DW 시스템입니다. 2013년 아파치 재단의 인큐베이션 프로젝트로 선정되었습니다. 데이터 저장소는 HDFS를 사용하되, 표준DB언어인 SQL을 통해 실시간으로 데이터를 조회할 수 있습니다. Hive보다 2 ~ 3배 빠르며, 클라우드데라의 임팔라(Impala)와는 비슷한 속도를 보여줍니다. 임팔라가 클라우드데라의 하둡을 써야 하는 제약에 비해, 특정 업체 솔루션에 종속되지 않는 장점이 있습니다. (http://tajo.incubator.apache.org)

공부해야 할게 너무 많타 햡햡

[출처] 시작하세요! 하둡 프로그래밍(위키북스), http://blrunner.com/18

서브 프로젝트들 (하둡 에코시스템)

반응형

하둡 에코시스템이란?

Hadoop EcoSystem

빅데이터는 수집, 정제, 적재, 분석, 시각화의 여러 단계를 거친다.

이 단계를 거치는 동안 여러가지 기술을 이용하여 처리되고,

이 기술들을 통틀어 빅데이터 에코 시스템(Bigdata Eco System)이라고 한다.

하둡의 코어 프로젝트가 HDFS와 MapReduce인 것이고 이 외에도 다양한 서브 프로젝트가 많이 존재한다.

이러한 서브 프로젝트들의 모임을 하둡 에코시스템(Hadoop EcoSystem)이라고 한다.

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

Hadoop의 서브 프로젝트 : Workflow관리, 데이터 마이닝, 분석, 수집, 직렬화 등

https://1004jonghee.tistory.com/entry/%ED%95%98%EB%91%A1-%EC%97%90%EC%BD%94-20161003?category=419383 시작하세요! 하둡 프로그래밍(위키북스)

수집기술

수집기술은 빅데이터 분석을 위한 원천 데이터를 수집하는 기술입니다. 원천 데이터는 실시간 데이터 수집 기술, 배치 데이터 수집기술이 있습니다. 원천 데이터의 종류에도 로그 데이터, DB 데이터, API 호출 데이터 등 여러가지 종류가 있습니다.

Flume

플룸

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

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

Kafka

카프카

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

대용량 이벤트 처리에 특화되었다. 발행(publish) – 구독(subscribe) 모델로 구성된다.

NiFi

나이파이

미국 국가안보국(NSA)에서 개발한 시스템 간 데이터 전달을 효율적으로 처리, 관리, 모니터링하기 위한 최적의 시스템

Scribe

페이스북에서 개발한 데이터 수집 플랫폼

Chukwa와는 다르게 데이터를 중앙 집중 서버로 전송하는 방식.

최종 데이터는 HDFS외에 다양한 저장소를 활용할 수 있다.

설치와 구성이 쉽게 다양한 프로그램 언어를 지원.

HDFS에 저장하기 위해서는 JNI(Java Native Interface)를 이용해야 한다.

Chukwa

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

분산된 각 서버에서 에이전트(agent)를 실행하고, 콜랙터(collector)가 에이전트로부터 데이터를 받아 HDFS에 저장한다.

콜렉터는 100개의 에이전트당 하나씩 구동되며, 데이터 중복 제거 등의 작업은 MapReduce로 처리.

데이터 전송

Sqoop

대용량 데이터 전송 솔루션.

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

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

Hiho

Sqoop과 같은 대용량 데이터 전송 솔루션

현재 github에서 공개되어 있다.

하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스를 지원.

작업관리기술

워크플로우 및 코디네이터 시스템

작업 관리 기술은 빅데이터를 분석하는 여러가지 단계를 효율적으로 생성, 관리하고 모니터링 할 수 있게 도와주는 기술 입니다.

Airflow

에어플로우

에어비앤비에서 개발한 데이터 흐름의 시각화, 스케쥴링, 모니터링이 가능한 워크플로우 플랫폼

하이브, 프레스토, DBMS 엔진과 결합하여 사용 할 수 있다.

Azkaban

아즈카반

링크드인에서 개발한 워크플로우 관리 도구

워크플로우 스케쥴러, 시각화된 절차, 인증 및 권한 관리, 작업 모니터링 및 알람 등

Oozie

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

자바(Java) 서블릿 컨테이너에서 실행되는 자바 웹 애플리케이션 서버

맵리듀스 작업이나 Pig 작업 같은 특화된 액션들로 구성된 워크플로우를 제어

데이터 직렬화

빅데이터 에코 시스템이 다양한 기술과 언어로 구현되기 때문에 각 언어간에 내부 객체를 공유해야 하는 경우가 있습니다. 이를 효율적으로 처리하기 위해서 데이터 직렬화기술을 이용합니다.

Avro

에이브로

아파치의 하둡 프로젝트에서 개발된 원격 프로시저 호출(RPC) 및 데이터 직렬화 프레임워크

자료형과 프로토콜 정의를 위해 JSON을 사용하며 콤팩트 바이너리 포맷으로 데이터를 직렬화합니다.

Thrift

스리프트

페이스북에서 개발한 서로 다른 언어로 개발된 모듈의 통합을 지원하는 RPC 프레임워크

데이터 타입과 서비스 인터페이스를 선언하면, RPC 형태의 클라이언트와 서버 코드를 자동으로 생성해 줍니다.

자바, C++, C#, Perl, PHP, 파이썬, 델파이, Erlang, Go, Node.js 등과 같이 다양한 언어를 지원합니다.

Protocol Buffers

프로토콜 버퍼

구글에서 개발한 RPC 프레임워크이며 구조화된 데이터를 직렬화하는 방식을 제공

다양한 언어를 지원하며 특히 직렬화 속도가 빠르고 직렬화된 파일의 크기도 작아서 Apache Avro 파일 포맷과 함께 많이 사용됩니다.

데이터 저장

빅데이터는 대용량의 데이터를 저장하기 때문에 데이터의 저장의 안정성과 속도가 중요합니다. HDFS외에도 아마존 AWS의 S3, MS Azure의 Data Lake, Blob Storage, Google의 Cloud Storage가 있습니다.

HDFS

하둡 분산 파일 시스템

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

분산된 각 서버에서 에이전트(agent)를 실행하고, 콜랙터(collector)가 에이전트로부터 데이터를 받아 HDFS에 저장한다.

콜렉터는 100개의 에이전트당 하나씩 구동되며, 데이터 중복 제거 등의 작업은 MapReduce로 처리.

S3

아마존에서 제공하는 인터넷용 저장소

Tajo

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

데이터 저장소는 HDFS를 사용하되, 표준DB언어인 SQL을 통해 실시간으로 데이터를 조회할 수 있습니다.

Hive보다 2 ~ 3배 빠르며, 클라우드데라의 임팔라(Impala)와는 비슷한 속도를 보여줍니다.

임팔라가 클라우드데라의 하둡을 써야 하는 제약에 비해, 특정 업체 솔루션에 종속되지 않는 장점이 있습니다.

NoSQL

HBase

구글 Bigtable을 기반으로 개발된 비관계형 데이터베이스로 HDFS의 컬럼(Column) 기반 데이터베이스

실시간 랜덤 조회 및 업데이트가 가능

각각의 프로세스들은 개인의 데이터를 비동기적으로 업데이트 할 수 있다.

단, MapReduce는 일괄처리 방식으로 수행된다.

데이터 처리

데이터 처리는 빅데이터를 분석하는 기술입니다. 하둡의 맵리듀스를 기반으로, 스파크, 하이브, HBase, 임팔라등 여러가지 기술이 있습니다.

MapReduce

HDFS상에서 동작하는 가장 기본적인 분석 기술

간단한 단위작업을 반복할 때 효율적인 맵리듀스 모델을 이용하여 데이터를 분석

Spark

인메모리 기반의 범용 데이터 처리 플랫폼

맵리듀스와 비슷한 목적의 업무를 수행하지만 하드디스크가 아닌 메모리를 활용하여 매우 빠른 속도로 데이터를 처리

인 메모리(In-Memory) 캐싱, 일반 배치 프로세싱(Batch Processing), 스트리밍 분석, 머신러닝, 그래프 데이터 베이스 및 임시 쿼리 등을 지원

현재 가장 빠르게 성장하고 있는 오픈소스 프로젝트 중의 하나.

Impala

클라우드데라에서 개발한 하둡 기반의 실시간 SQL 질의 시스템

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

임팔라(Impala)는 데이터 조회를 위한 인터페이스로, HiveQL을 사용합니다.

수초 내에 SQL 질의 결과를 확인할 수 있으며, HBase와도 연동이 가능합니다.

Presto

프레스토

페이스북이 개발한 대화형 질의를 처리하기 위한 분산 쿼리 엔진

메모리 기반으로 데이터를 처리하며, 다양한 데이터 저장소에 저장된 데이터를 SQL로 처리할 수 있습니다.

특정 질의 경우 하이브 대비 10배 정도 빠른 성능을 보여주며, 현재 오픈소스로 개발이 진행되고 있습니다.

Hive

페이스북에서 만든 오픈소스로 데이터 웨어하우징 솔루션

SQL과 매우 유사한 HiveQL이라는 쿼리를 제공하여 자바를 잘 모르는 유저도 쉽게 하둡 데이터를 분석할 수 있다.

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

Hcatalog

Pig, MapReduce, Spark에서 Hive 메타스토어 테이블에 액세스할 수 있는 도구

테이블을 생성하거나 기타 작업을 수행할 수 있는 REST 인터페이스 및 명령줄 클라이언트를 제공합니다.

Pig

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

하둡에 저장된 데이터를 맵리듀스 프로그램을 만들지 않고 SQL과 유사한 스크립트를 이용하여 데이터를 처리.

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

클러스터 관리

분산 리소스 관리

빅데이터는 단일 시스템이 보다는 보통 클러스터로 처리 되기 때문에 자원의 효율적인 사용이 필요합니다. 클러스터의 관리를 위한 여러가지 기술이 있습니다.

YARN

작업 스케줄링 및 클러스터 리소스 관리를 위한 프레임워크

기존 하둡의 데이터 처리 프레임워크인 맵리듀스의 단점을 극복하기 위해서 시작된 프로젝트

하둡2.0부터 이용 가능.

맵리듀스, 하이브, 임팔라, 타조, 스파크 등 다양한 애플리케이션들은 얀에서 리소스를 할당받아 작업을 실행.

Mesos

메소스

Cloud환경에 대한 리소스 관리

클라우드 인프라스트럭처 및 컴퓨팅 엔진의 다양한 자원(CPU, 메모리, 디스크)을 통합적으로 관리할 수 있도록 만든 자원 관리 프로젝트

다양한 글로벌 기업들이 메소스로 클러스터 자원을 관리

메소스는 클러스터링 환경에서 동적으로 자원을 할당하고 격리해주는 매커니즘을 제공

이를 통해 분산 환경에서 작업 실행을 최적화시킬 수 있습니다.

웹 기반의 UI, 자바, C++, 파이썬 API를 제공

하둡, 스파크(Spark), 스톰(Storm), 엘라스틱 서치(Elastic Search), 카산드라(Cassandra), 젠킨스(Jenkins) 등 다양한 애플리케이션을 메소스에서 실행할 수 있습니다.

분산서버관리

클러스터에서 여러가지 기술이 이용될 때 하나의 서버에서 모든 작업이 진행되면 이 서버가 단일실패지점(SPOF)가 됩니다. 이로 인한 리스크를 줄이기 위해 분산 서버 관리 기술을 이용합니다.

Zookeeper

분산 환경에서 서버들간 상호 조정이 필요한 다양한 서비스를 제공하는 시스템. 모니터링 및 관리.

하나의 서버에만 서비스가 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리하게 해줌 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화 -> 데이터 안정성 보장 운영(active) 서버에서 문제가 발생해 서비스를 제공할 수 없는 경우,

다른 대기중인 서버를 운영 서버로 바꿔 서비스가 중지없이 제공되게 해줌 분산 환경을 구성하는 서버들의 환경설정을 통합적으로 관리

시각화

Zeppelin

제플린

한국의 NFLab이라는 회사에서 개발하여 Apache top level 프로젝트로 최근 승인 받은 오픈소스 솔루션

Notebook 이라고 하는 웹 기반 Workspace에 Spark, Tajo, Hive, ElasticSearch 등 다양한 솔루션의 API, Query 등을 실행하고 결과를 웹에 나타내는 솔루션

Hue

Hadoop User Experience; 하둡 휴

하둡과 하둡 에코시스템의 지원을 위한 웹 인터페이스를 제공하는 오픈 소스

Hive 쿼리를 실행하는 인터페이스를 제공하고, 시각화를 위한 도구를 제공합니다.

잡의 스케줄링을 위한 인터페이스와 잡, HDFS, 등 하둡을 모니터링하기 위한 인터페이스도 제공합니다.

그외

Mahout

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

지원하는 알고리즘

현재 분류(classification)

클러스터링(clustering)

추천 및 협업 필터링(Recommenders/Collavorative filtering)

패턴 마이닝(Pattern Mining)

회귀 분석(Regression)

차원 리덕션(Dimension Reduction)

진화 알고리즘(Evolutionary Algorithms) 등

엑셈 플라밍고 (EXEM Flamingo) – 빅데이터 통합 관리 플랫폼

(1) 개요

– 하둡 에코 시스템을 기반으로 빅데이터 플랫폼을 구축한 고객들의 경우, 다양한 오픈소스 소프트웨어를 운영하면서 발생하는 각각의 이슈를 해결하는데 상당한 어려움을 겪고 있음

– Spark, Hive, MapReduce, Kafka, HBase, HDFS, R 등 다양한 빅데이터 분석 환경에서 시스템 운영자 및 데이터 분석가는 수십 내지 수백 대의 노드(Node)를 관리해야 하기 때문에 시스템 성능 관리가 쉽지 않음. 따라서 빅데이터 분석 환경을 보다 쉽게 관리할 수 있는 통합 솔루션에 대한 니즈가 발생하기 시작

– 엑셈의 플라밍고는 빅데이터 수집부터 저장, 분석에 필요한 데이터 가공까지 손쉽게 활용할 수 있도록 돕는 플랫폼. 즉 하둡 에코 시스템에 대한 통합 관리 솔루션. 플랫폼 모니터링, 보유 데이터의 브라우징, 데이터 정제 및 처리를 위한 워크플로우 등 안정적인 운영과 활용이 가능하도록 다양한 기능을 제공

<출처: 엑셈>

<출처: 엑셈>

(2) 주요 기능

1) 실시간 모니터링: 하둡 성능 관리에 최적화된 모니터링 패턴 제공

2) CPU 코어 모니터링: 하나의 클러스터 공유를 통한 분석 작업 별 CPU 코어 사용량 모니터링

3) 알람/메일 연계: 주요 컴포넌트에 대한 비정상 동작 시 경보 메일 발송

4) 분석 애플리케이션 모니터링: 장애 발생 시 실행 로그를 빠르게 확인하여 문제 해결

5) 에코 시스템 관리: 서비스 상태 체크, 안정적인 운영 지원

6) Zeppelin Notebook: 단계별 쿼리 관리, 조화된 데이터의 다운로드 및 시각화 기능 제공

7) 대량 파일/디렉토리 브라우징: 수많은 디렉토리와 파일을 동시에 관리

8) 워크플로우 기능: Drag & Drop 방식으로 데이터 처리 지원

🔽 REFERENCE

반응형

하둡 에코시스템(Hadoop Eco System)

I. 하둡 에코시스템의 개요

가. 하둡 에코시스템(Hadoop Eco System)의 정의

– 하둡을 효율적으로 적용 가능한 서브 프로젝트가 많이 상용화 되면서 그것들의 집합, 하둡 생태계

II. 하둡 에코시스템(2.0)의 구성도 및 구성요소

가. 하둡 에코시스템의 구성도

나. 하둡 에코시스템의 구성요소

구성요소 서브프로젝트 설명 코디네이터 Zookeeper – 분산 환경에서 서버 간의 상호조정이 필요한 다양한 서비스 제공 리소스관리 Yarn – 데이터 처리 작업을 실행하기 위한 클러스터 지원, 스케줄링을 위한 프레임워크 데이터저장 HBase – HDFS 기반, 컬럼 기반 데이터베이스 Kudu – 컬럼 기반 스토리지 데이터수집 Chukwa – 분산환경에서 생성되는 데이터를 HDFS에 안정적으로 저장하는 플랫폼 Flume – 에이전트로부터 데이터를 받는 콜렉터 Kafka – 데이터 스트림을 실시간으로 관리하기 위한 메시징 시스템 데이터처리 Spark – 인메모리 기반 범용 데이터 처리 플랫폼 Pig – 복잡한 맵리듀스 프로그래밍을 대체할 “피그라틴” 언어 제공 Tajo – 하둡 기반의 데이터웨어하우스 시스템 워크플로우 관리 Oozie – 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템 Nifi – 데이터 흐름을 모니터링하기 위한 프레임워크 데이터 시각화 Zeppelin – 빅데이터 분석가를 위한 웹 기반 분석도구 데이터 직렬화 Avro – RPC(Remote Procedure Call)와 데이터 직렬화 지원 프레임워크

반응형

3-빅데이터 에코시스템

빅데이터는 수집, 정제, 적재, 분석, 시각화의 여러 단계를 거칩니다. 이 단계를 거치는 동안 여러가지 기술을 이용하여 처리되고, 이 기술들을 통틀어 빅데이터 에코 시스템(Bigdata Eco System)이라고 합니다.

수집 기술

수집기술은 빅데이터 분석을 위한 원천 데이터를 수집하는 기술입니다. 원천 데이터는 실시간 데이터 수집 기술, 배치 데이터 수집기술이 있습니다. 원천 데이터의 종류에도 로그 데이터, DB 데이터, API 호출 데이터 등 여러가지 종류가 있습니다.

플룸(Flume)

플룸은 클라우데라에서 개발한 서버 로그 수집 도구 입니다. 각 서버에 에이전트가 설치 되고, 에이전트로부터 데이터를 전달 받는 콜렉터로 구성됩니다.

Apache Flume(https://flume.apache.org/)

오픈소스 작명 센스: 아파치 플룸(Apache Flume)(바로가기)

플룸 Wiki 바로가기

카프카(Kafka)

카프카는 링크드인에서 개발한 분산 메시징 시스템입니다. 대용량 실시간 로그 처리에 특화 되어 있습니다. 발행(publish) – 구독(subscribe) 모델로 구성됩니다.

Kafka([http://kafka.apache.org])

카프카 소개 및 아키텍처 정리(바로가기)

Streaming Platform으로써의 Apache Kafka 바로가기

카프카 Wiki 바로가기

NiFi

미국 국가안보국(NSA)에서 개발한 시스템 간 데이터 전달을 효율적으로 처리, 관리, 모니터링하기 위한 최적의 시스템입니다.

Nifi(https://nifi.apache.org)

나이파이 Wiki 바로가기

NSA의 Dataflow 엔진 Apache NiFi 소개와 설치 바로가기

Flume, Kafka, Nifi 바로가기

Sqoop

RDBMS와 HDFS간 대용량 데이터 전송을 위한 솔루션입니다. HDFS, RDBMS, DW, NoSQL 등 다양한 저장소에 대용량 데이터를 신속하게 전송할 수 있는 방법을 제공합니다. 상용RDBMS도 지원하고, MySQL, PostgreSQL 오픈소스 RDBMS도 지원합니다.

Sqoop(http://sqoop.apache.org/)

스쿱 Wiki 바로가기

scribe

스크라이브는 페이스북에서 제작한 로그 수집 시스템입니다. 메시지 큐에 쌓인 로그를 DB나 메시지 큐로 전달합니다. C++로 제작되어 속도가 빠르고, 페이스북의 대용량 데이터 처리에 사용되었을 정도로 안정성을 가지고 있습니다. 현재는 페이스북이 Calligraphus를 사용하여 2014년 이후 개선사항이 없습니다.

Fluentd

트레저 데이터에서 개발한 로그 수집시스템입니다. 주로 루비와 C로 작성되었습니다. 여러 형태의 로그를 전달받아서 원하는 저장소에 쌓을수 있습니다. 비정형, 반정형 데이터를 필터링, 버퍼링하여 사용자가 지정하는 데이터베이스나 클라우드 저장소에 효율적으로 저장할 수 있습니다.

기본적인 구조는 Flume NG와 비슷합니다. Flume의 Source, Channel, Sink가 Input, Buffer, Output으로 대체되었습니다. 장점은 각 파트 별로 플러그인을 만들기 쉽습니다.

작업 관리 기술

작업 관리 기술은 빅데이터를 분석하는 여러가지 단계를 효율적으로 생성, 관리하고 모니터링 할 수 있게 도와주는 기술 입니다.

Airflow

에어플로우는 에어비앤비에서 개발한 데이터 흐름의 시각화, 스케쥴링, 모니터링이 가능한 워크플로우 플랫폼입니다. 하이브, 프레스토, DBMS 엔진과 결합하여 사용 할 수 있습니다.

Airflow(http://nerds.airbnb.com/airflow)

Apache Airflow – Workflow 관리 도구 바로가기

데이타 워크플로우 관리를 위한 Apache Airflow #1바로가기

Azkaban

아즈카반은 링크드인에서 개발한 워크플로우 스케쥴러, 시각화된 절차, 인증 및 권한 관리, 작업 모니터링 및 알람 등 다양한 기능을 가지는 워크플로우 관리 도구 입니다.

Azkaban(https://azkaban.github.io)

Azkaban – Hadoop Workflow Management System(Opensource by LinkedIn) 바로가기

Oozie

우지는 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템입니다. 자바 웹 애플리케이션 서버로 UI 제공 하고, 맵리듀스, hive, pig 작업 같은 특화된 액션으로 구성된 XML 포맷의 워크플로우로 작업을 제어합니다.

https://oozie.apache.org/

Oozie Wiki 바로가기

Airflow vs Azkaban vs Oozie 바로가기

데이터 직렬화

빅데이터 에코 시스템이 다양한 기술과 언어로 구현되기 때문에 각 언어간에 내부 객체를 공유해야 하는 경우가 있습니다. 이를 효율적으로 처리하기 위해서 데이터 직렬화기술을 이용합니다.

Avro

에이브로(Avro)는 아파치의 하둡 프로젝트에서 개발된 원격 프로시저 호출(RPC) 및 데이터 직렬화 프레임워크입니다. 자료형과 프로토콜 정의를 위해 JSON을 사용하며 콤팩트 바이너리 포맷으로 데이터를 직렬화합니다.

https://avro.apache.org/

Avro Wiki 바로가기

Thrift

스리프트는 페이스북에서 개발한 서로 다른 언어로 개발된 모듈의 통합을 지원하는 RPC 프레임워크 입니다. 데이터 타입과 서비스 인터페이스를 선언하면, RPC 형태의 클라이언트와 서버 코드를 자동으로 생성해 줍니다. 자바, C++, C#, Perl, PHP, 파이썬, 델파이, Erlang, Go, Node.js 등과 같이 다양한 언어를 지원합니다.

Thrift(http://thrift.apache.org)

스리프트 Wiki 바로가기

RPC – Apache Thrift 입문 1부 바로가기

Protocol Buffers

//polyline.proto syntax = “proto2”; message Point { required int32 x = 1; required int32 y = 2; optional string label = 3; }

프로토콜 버퍼(Protocol Buffers)는 구글에서 개발한 RPC 프레임워크 입니다. 구조화된 데이터를 직렬화하는 방식을 제공합니다. C++,C#, Go, Java, Python, Object C, Javascript, Ruby 등 다양한 언어를 지원하며 특히 직렬화 속도가 빠르고 직렬화된 파일의 크기도 작아서 Apache Avro 파일 포맷과 함께 많이 사용됩니다.

Protocol Buffers(https://developers.google.com/protocol-buffers/)

구글 프로토콜 버퍼(바로가기)

저장

빅데이터는 대용량의 데이터를 저장하기 때문에 데이터의 저장의 안정성과 속도가 중요합니다. HDFS외에도 아마존 AWS의 S3, MS Azure의 Data Lake, Blob Storage, Google의 Cloud Storage가 있습니다.

HDFS

하둡 분산 파일 시스템(HDFS, Hadoop distributed file system)은 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템입니다. HDFS는 범용 컴퓨터를 클러스터로 구성하여 대용량의 파일을 블록단위로 분할하여 여러서버에 복제하여 저장합니다.

HDFS Wiki 바로가기

S3

S3는 아마존에서 제공하는 인터넷용 저장소입니다. 아마존에서 자체적으로 제공하는 여러가지 서비스에 잘 적용되는 저장소 입니다.

아마존 S3(바로가기)

NoSQL

HBase

hbase(main):003:0> describe ‘test’ Table test is ENABLED test COLUMN FAMILIES DESCRIPTION {NAME => ‘cf’, VERSIONS => ‘1’, EVICT_BLOCKS_ON_CLOSE => ‘false’, NEW_VERSION_BEHAVIOR => ‘false’, KEEP_DELETED_CELLS => ‘FALSE’, CACHE_DATA_ON_WRITE => ‘false’, DATA_BLOCK_ENCODING => ‘NONE’, TTL => ‘FOREVER’, MIN_VERSIONS => ‘0’, REPLICATION_SCOPE => ‘0’, BLOOMFILTER => ‘ROW’, CACHE_INDEX_ON_WRITE => ‘f alse’, IN_MEMORY => ‘false’, CACHE_BLOOMS_ON_WRITE => ‘false’, PREFETCH_BLOCKS_ON_OPEN => ‘false’, COMPRESSION => ‘NONE’, BLOCKCACHE => ‘true’, BLOCKSIZE => ‘65536’} 1 row(s) Took 0.9998 seconds

HBase는 HDFS 기반의 칼럼 기반 NoSQL 데이터베이스입니다. 구글의 빅테이블(BigTable) 논문을 기반으로 개발됐습니다. 실시간 랜덤 조회 및 업데이트가 가능하며, 각 프로세스는 개인의 데이터를 비동기적으로 업데이트할 수 있습니다.

HBase의 기본 동작단위는 칼럼입니다. H마스터가 H리전을 관리하는 구조를 가지고 있습니다. 주키퍼가 H마스터를 관리하여 SPOF를 회피합니다.

데이터 처리

데이터 처리는 빅데이터를 분석하는 기술입니다. 하둡의 맵리듀스를 기반으로, 스파크, 하이브, HBase, 임팔라등 여러가지 기술이 있습니다.

MapReduce

맵리듀스는 HDFS상에서 동작하는 가장 기본적인 분석 기술입니다. 간단한 단위작업을 반복할 때 효율적인 맵리듀스 모델을 이용하여 데이터를 분석합니다.

Spark

스파크(Spark)는 인메모리 기반의 범용 데이터 처리 플랫폼입니다. 배치 처리, 머신러닝, SQL 질의 처리, 스트리밍 데이터 처리, 그래프 라이브러리 처리와 같은 다양한 작업을 수용할 수 있도록 설계되어 있습니다. 2009년 버클리 대학의 AMPLab에서 시작됐으며, 현재 가장 빠르게 성장하고 있는 오픈소스 프로젝트 중의 하나입니다.

Spark(http://spark.apache.org)

스파크 Wiki 바로가기

스파크 소개 및 실습 바로가기

Impala

임팔라(Impala)는 클라우데라에서 개발한 하둡 기반의 분산 쿼리 엔진입니다. 맵리듀스를 사용하지 않고, C++로 개발한 인메모리 엔진을 사용해 빠른 성능을 보여줍니다. 임팔라는 데이터 조회를 위한 인터페이스로 HiveQL을 사용하며, 수초 내에 SQL 질의 결과를 확인할 수 있습니다. 2015년말 아파치 재단의 인큐베이션 프로젝트로 채택됐습니다.

Impala(http://impala.io)

임팔라 Wiki 바로가기

Hadoop에서의 실시간 SQL 질의: Impala 바로가기

Presto

프레스토(Presto)는 페이스북이 개발한 대화형 질의를 처리하기 위한 분산 쿼리 엔진입니다. 메모리 기반으로 데이터를 처리하며, 다양한 데이터 저장소에 저장된 데이터를 SQL로 처리할 수 있습니다. 특정 질의 경우 하이브 대비 10배 정도 빠른 성능을 보여주며, 현재 오픈소스로 개발이 진행되고 있습니다.

Presto(https://prestodb.io)

프레스토 소개 바로가기

Hive

hive> SELECT col1, col2 FROM t1 1 3 1 3 1 4 2 5

하이브(Hive)는 하둡 기반의 데이터웨어하우징용 솔루션입니다. 페이스북에서 개발했으며, 오픈소스로 공개되며 주목받은 기술입니다. SQL과 매우 유사한 HiveQL이라는 쿼리 언어를 제공합니다. 그래서 자바를 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와줍니다. HiveQL은 내부적으로 맵리듀스 잡으로 변환되어 실행됩니다.

Hive(http://hive.apache.org)

하이브 Wiki 바로가기

Hcatalog

HCatalog는 Pig, MapReduce, Spark에서 Hive 메타스토어 테이블에 액세스할 수 있는 도구입니다. 테이블을 생성하거나 기타 작업을 수행할 수 있는 REST 인터페이스 및 명령줄 클라이언트를 제공합니다.

Pig

A = LOAD ‘student’ USING PigStorage() AS (name:chararray, age:int, gpa:float); B = FOREACH A GENERATE name; DUMP B; (John) (Mary)

피그(Pig)는 야후에서 개발됐으나 현재는 아파치 프로젝트에 속한 프로젝트로서, 복잡한 맵리듀스 프로그래밍을 대체할 피그 라틴(Pig Latin)이라는 자체 언어를 제공합니다. 맵리듀스 API를 매우 단순화한 형태이고 SQL과 유사한 형태로 설계됐습니다. SQL과 유사하기만 할 뿐, 기존 SQL 지식을 활용하기가 어려운 편입니다.

피그 Wiki 바로가기

Pig(http://pig.apache.org)

클러스터 관리

빅데이터는 단일 시스템이 보다는 보통 클러스터로 처리 되기 때문에 자원의 효율적인 사용이 필요합니다. 클러스터의 관리를 위한 여러가지 기술이 있습니다.

YARN

얀(YARN)은 데이터 처리 작업을 실행하기 위한 클러스터 자원(CPU, 메모리, 디스크등)과 스케쥴링을 위한 프레임워크입니다. 기존 하둡의 데이터 처리 프레임워크인 맵리듀스의 단점을 극복하기 위해서 시작된 프로젝트이며, 하둡2.0부터 이용이 가능합니다. 맵리듀스, 하이브, 임팔라, 타조, 스파크 등 다양한 애플리케이션들은 얀에서 리소스를 할당받아서, 작업을 실행하게 됩니다.

Mesos

메소스(Mesos)는 클라우드 인프라스트럭처 및 컴퓨팅 엔진의 다양한 자원(CPU, 메모리, 디스크)을 통합적으로 관리할 수 있도록 만든 자원 관리 프로젝트입니다. 메소스는 2009년 버클리 대학에서 Nexus 라는 이름으로 시작된 프로젝트이며, 2011년 메소스라는 이름으로 변경됐으며, 현재는 아파치 탑레벨 프로젝트로 진행중이며, 페이스북, 에어비엔비, 트위터, 이베이 등 다양한 글로벌 기업들이 메소스로 클러스터 자원을 관리하고 있습니다. 메소스는 클러스터링 환경에서 동적으로 자원을 할당하고 격리해주는 매커니즘을 제공하며, 이를 통해 분산 환경에서 작업 실행을 최적화시킬 수 있습니다. 1만대 이상의 노드에도 대응이 가능하며, 웹 기반의 UI, 자바, C++, 파이썬 API를 제공합니다. 하둡, 스파크(Spark), 스톰(Storm), 엘라스틱 서치(Elastic Search), 카산드라(Cassandra), 젠킨스(Jenkins) 등 다양한 애플리케이션을 메소스에서 실행할 수 있습니다.

메조스 Wiki 바로가기

Apache Mesos 소개 바로가기

Mesos(http://mesos.apache.org)

분산 서버 관리

클러스터에서 여러가지 기술이 이용될 때 하나의 서버에서 모든 작업이 진행되면 이 서버가 단일실패지점(SPOF)가 됩니다. 이로 인한 리스크를 줄이기 위해 분산 서버 관리 기술을 이용합니다.

Zookeeper

분산 환경에서 서버 간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템으로, 크게 다음과 같은 네 가지 역할을 수행합니다.

첫째, 하나의 서버에만 서비스가 집중되지 않게 서비스를 알맞게 분산해 동시에 처리하게 해줍니다. 둘째, 하나의 서버에서 처리한 결과를 다른 서버와도 동기화해서 데이터의 안정성을 보장합니다. 셋째, 운영(active) 서버에 문제가 발생해서 서비스를 제공할 수 없을 경우, 다른 대기 중인 서버를 운영 서버로 바꿔서 서비스가 중지 없이 제공되게 합니다. 넷째, 분산 환경을 구성하는 서버의 환경설정을 통합적으로 관리합니다.

예를 들면 HA(High Availability) 구성된 HDFS 네임노드의 Active 노드 선출, HBase 리전서버의 Active 서버 선출, Hiveserver2의 다중 선택등을 지원합니다.

Zookeeper(http://zookeeper.apache.org)

주키퍼 Wiki 바로가기

시각화

Zeppelin

Zeppelin은 한국의 NFLab이라는 회사에서 개발하여 Apache top level 프로젝트로 최근 승인 받은 오픈소스 솔루션으로, Notebook 이라고 하는 웹 기반 Workspace에 Spark, Tajo, Hive, ElasticSearch 등 다양한 솔루션의 API, Query 등을 실행하고 결과를 웹에 나타내는 솔루션입니다.

Hue

하둡 휴(Hue, Hadoop User Experience)는 하둡과 하둡 에코시스템의 지원을 위한 웹 인터페이스를 제공하는 오픈 소스 입니다. Hive 쿼리를 실행하는 인터페이스를 제공하고, 시각화를 위한 도구를 제공합니다. 잡의 스케줄링을 위한 인터페이스와 잡, HDFS, 등 하둡을 모니터링하기 위한 인터페이스도 제공합니다.

보안

Ranger

레인저는 하둡 클러스터의 각 모듈에 대한 보안 정책을 관리할 수 있습니다. HDFS의 ACL, Hive 데이터베이스의 접근권한 등의 보안 정책과 각 모듈에 대한 접근 기록(Audit)을 보관합니다.

데이터 거버넌스

데이터 거버넌스는 기업의 여기저기 산재한 데이터를 같은 저장소에 관리, 비정형 데이터를 규칙에 맞게 표준화하는 전사 차원의 빅데이터 관리 체계입니다.

Atlas

아틀라스는 데이터 거버넌스로 조직이 보안/컴플라이언스 요구사항을 준수할 수 있도록 지원합니다. 데이터 자원에 대한 태깅, 다운스트림 데이터셋에 대한 태그 전파, 메타 데이터 접근에 대한 보안등 다양한 기능을 가지고 있습니다. 메타데이터 변경 알림 기능을 제공하고, Hive, HBase, Kafka의 데이터가 변경되는 것을 알리는 기능을 제공합니다.

Amundsen

아문센은 데이터 디스커버리 플랫폼입니다. 기업에 존재하는 데이터를 검색하고, 추천하는 기능을 가지고 있습니다. 검색, 추천, 미리보기/컬럼통계/소유자/주사용자 들이 잘 표현된 테이블 상세 페이지를 지원합니다.

인코덤, 생물정보 전문위키

Structured data Category Programming

서론. 모듈화에 대한 이해 #

컴퓨터, 자동차, 스마트폰 등 고성능의 제품을 만들 때는 한 기업만 만드는 것이 아니다. 단적인 예로 CPU는 어느 기업에서 만들고 그래픽 카드는 또 다른 회사에서 만드는 것이다. 이러한 방식을 모듈화라고 한다. 모듈화된 부품(프로그램)은 하나로 모여 용도에 맞게 제작될 수 있고 제품의 사양을 결정할 수 있다. 하둡 에코시스템은 이러한 배경으로 명명되었다. hadoop 총정리 1편에서 설명한 맵리듀스, 분산형 파일시스템 등 핵심 프레임워크 이외에 다양한 기능의 프레임워크가 모여 하둡 서비스를 제공한다. 사용자는 모듈화된 여러 프레임워크 중에서 자신의 용도에 맞는 프레임워크를 조합하여 하둡서비스를 이용하는 것이다.

하둡 에코시스템 #

하둡과 관련된 프레임워크들을 하둡 에코시스템이라 한다. 하둡 코어 프로젝트(HDFS, MapReduce)와 하둡 서브 프로젝트(수집, 분석, 마이닝 등)로 구성된다. 서론에서 언급한 바와 같이 다did한 프레임워크가 존재하며, 사용자의 상황에 맞추어 조립하여 사용할 수 있다. 이번 편에서는 그 중에서도 가장 많이 사용되는 프레임워크에 대해서 소개하고자 한다.

그림1 하둡에코시스템 (출처: 12bme 블로그)

하둡 에코시스템(생태계)에서 서브 프로젝트는 주로 동물들의 이름을 딴 경우가 많다. 타조, 하마, 돼지 등등 친숙한 동물들의 이름으로 이루어져 있다. 각 동물들은 하나의 프레임워크를 구성하는데, Zookeeper(사육사)는 이름에서 그 역할을 쉽게 짐작할 수 있다. 분산 시스템 간의 정보 공유 및 상태 체크, 동기화를 처리하는 프레임워크이다. 이러한 시스템을 코디네이션 서비스 시스템이라고 한다. Zookeeper를 많이 사용하는 이유는 기능에 비해 시스템이 단순하기 때문이다. 분산 큐, 분산 락, 피어 그룹 대표 산출 등 다양한 기능을 가진다. 몇 개의 기본 기능만으로도 사용이 가능하다.

그림2 주키퍼 (출처: AO DBA 유튜브)

하둡의 워크플로우를 관리한다. 일정한 시간이 경과하거나 또는 주기적으로 반복해서 실행될 수 있는 잡들에 대하여 관리하며 맵리듀스 잡, 피그 잡 등의 시작과 완료 그리고 실행 중 에러등의 이벤트를 콜 백할 수 있다.

그림3 우지 (출처: Hadoop Tutorial: Oozie 슬라이드쉐어)

데이터 직렬화 프레임워크이다. 가장 큰 특징은 ‘특정 언어에 종속되지 않는다’ 이다. 다양한 언어(C, 자바, 펄, 파이썬, 루비 등)로 데이터를 쉽게 공유할 수 있는 것이다. 따라서 어떤 언어가 사라진다 하더라도 에이브로를 통한 데이터 직렬화가 가능하다. 스키마를 보통 JSON으로 작성하며 바이너리 형태로 인코딩한다.

그림4 에이브로 (출처: Denny Lee 블로그)

컬럼 기준으로 데이터를 저장하는 포맷이다. 컬럼 단위의 중첩된 데이터 저장은 효율적으로 저장공간을 절약한다. 또한, 특정 열 값을 가져오는 쿼리가 전체 행을 읽을 필요가 없기 때문에 성능이 좋은 프레임워크이다.

그림5 파케이 (출처: Taking Hadoop to Enterprise Security Standards 슬라이드쉐어)

플룸은 수집기능을 담당하는 프레임워크이다. 웹서버에서 로그 파일을 수집하고 로그 이벤트를 저장소로 전달한다. 플룸 에이전트는 소스, 채널, 싱크로 구성된다. 소스는 이벤트를 수집하여 채널로 전달하고, 채널은 소스와 싱크의 통로이다. USB 케이블의 입력 단자, 케이블, 출력 단자를 생각하면 이해가 쉽다.

그림6 플룸 (출처: quora 사이트)

스쿱은 플룸과 같이 수집기능을 담당하는 프레임워크이다. 하지만 스쿱은 관계형 데이터베이스 관리시스템(RDBMS)과 같은 정형적인 데이터 저장소에서 데이터를 추출하도록 도와준다. 관계형 데이터베이스의 데이터를 HBase로 옮기는 데 사용하는 것이 대표적이다.

그림7 스쿱 (출처: onlineguwahati 사이트)

하둡 시스템의 맵리듀스 API를 단순화시킨 프레임워크이다. 사용하는 이유는 대용량 데이터를 처리할 때 맵리듀스 함수가 처리하기 어려운 조인 기능 등으로 쉽게 처리할 수 있다. 피그 라틴언어를 사용하는데 이를 통해 데이터 흐름을 표현할 수 있다.

그림8 피그 (출처: edureka 블로그)

맵리듀스 파이프라인을 작성하는 API이다. Work Flow 상 개별 맵리듀스 Job을 직접 관리할 필요가 없기 때문에 여러 단계의 파이프라인에만 개발자가 집중할 수 있도록 해준다.

그림9 크런치 (출처: Engineering Health 블로그)

분산형 파일 시스템을 사용하는 컬럼기반 데이터베이스이다. 실시간으로 랜덤에이터 조회 및 수정이 가능하며 비동기적으로 데이터를 수정할 수 있다. RDBMS의 비확장성 비분산 등의 단점을 완벽히 커버한다. 단지 노드만 추가하면 선형으로 확장할 수 있다.

그림10 HBase (출처: thirdeyedata 사이트)

하이브는 자바 프로그래밍을 모르는 사용자도 빅데이터를 분석하고 처리할 수 있도록 도와주는 프레임워크이다. HiveQL이라는 자체 쿼리를 제공한다. HiveQL은 실핼 될 때 맵리듀스의 Job으로 변환되어 실행된다.

그림11 하이브 (출처: 깨죽 블로그)

하이브와 같이 SQL 질의 시스템이다. 다만 맵리듀스를 사용하지 않고 자체 개발한 엔진을 사용한다. 쿼리는 HiveQL을 사용하고 Hbase와도 연동된다.

그림12 Impala (출처: cloudera 사이트)

하둡 기반의 DW시스템이다. Hive보다 2~3배 정도 빠르고 임팔라와는 비슷한 속도를 가진다. 특정한 솔루션에 종속되지 않는 장점이 있다.

그림13 Tajo (출처: gartner 블로그)

무엇을 사용하고 공부해야 하는가? #

앞서 언급한 바와 같이 하둡 에코시스템은 다양한 프레임워크로 구성되어 있다. 이번 편에서 소개하지 못한 프레임워크(Mahout, Hiho 등등)도 무수히 많다. 이런 많은 기능에 하둡 사용을 주저할 필요가 없다. 수집, 저장, 처리, 분석, 시각화 기술에 맞추어 각 프레임워크를 연결해주면 된다.

다음 편에서는 하둡의 설치와 간단한 활용 예제를 소개할 예정이다.

하둡완벽가이드 4판

ITworld.com – 빅 데이터의 열쇠 하둡 총정리

빅데이터는 넘커 Tistory 블로그 – 하둡 에코시스템이란?

RYU.FREE Tistory 블로그 – 하둡 에코 시스템

12bme Tistory 블로그 – 아파치 하둡이란?

woogado Naver 블로그 – 빅데이터 요소 기술들

관련 키워드 #

하둡, HADOOP, Hadoop, hadoop, 에코 시스템, 하둡 에코 시스템

Suggested Pages #

[ 빅데이터 플랫폼 ] 하둡 에코시스템(Hadoop-Ecosystem)

728×90

반응형

이미지 출처 : 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

하둡 프레임워크 상에 존재하는 다양한 서브프로젝트들의 집합이라고 생각하면 된다.

하나하나 살펴보도록 하겠다.

ZOOKEEPER

분산 시스템 간의 정보 공유 및 상태 체크, 동기화를 처리한다.

이러한 역할을 하는 시스템을 코디네이션 서비스 시스템이라고 한다.

이를 많이 쓰는 이유는, 기능에 비해 시스템이 단순하기 때문이다.

분산 큐, 피어 그룹 대표 산출, 분산 락 등의 다양한 기능을 가지고 있다.

OOZIE

하둡의 워크플로우를 관리해준다.

맵리듀스 잡, 피그 잡등의 시작과 완료, 실행 중 에러등의 이벤트를 콜 백 할 수 있다.

AVRO

데이터 직력화에 쓰이는 프레임워크이다.

다양한 언어를 지원하며, 스키마를 보통 JSON 으로 작성 후 바이너리 형태로 인코딩한다.

TAJO

하둡 기반 DW(Data Warehouse) 시스템이다.

특정한 솔루션에 종속되지 않는다.

+ DW 란 사용자의 의사 결정에 도움을 주기 위해 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스를 말한다고 한다.

HIVE

자바 프로그래밍을 모르는 사용자도 빅데이터를 분석하고 처리할 수 있도록 도와주는 프레임 워크이다.

HiveQL이라는 자체 쿼리를 제공하며, 이는 실행될 때 맵리듀스 잡으로 변환되어 실행된다.

DW 로 하이브를 쓸 일이 생겨서,

좀 더 자세히 알아봤다.

하이브는 아파치 HDFS나 HBase와 같은

데이터 저장 시스템에 저장되어 있는 대용량 데이터 집합들을 분석한다.

쿼리를 빠르게 하기 위해 비트맵 인덱스를 포함하여 인덱스 기능도 제공한다.

HBASE

분산형 파일 시스템을 사용하는 컬럼기반 DB이다.

실시간 랜덤데이터 조회/수정이 가능하며 비동기적으로 수정할 수 있다.

RDBMS의 비확장성 비분산 등의 단점을 커버한다.

MAPREDUCE

Map 과 Reduce 단계로 나누어져 처리한다.

Map 단계는 흩어져 있는 데이터를 key 와 value 로 묶고,

Reduce 단계는 Map 단계의 key 를 중심으로 필터링 및 정렬한다.

이를 함수를 통해 구현하고 맵리듀스 잡을 통해 제어한다.

HDFS

하둡의 부사장인 아룬 머시가 하둡은 하둡 네트워크에 연결된 아무 기기에 데이터를 밀어넣는다고 표현했을 정도로

분산형 파일시스템은 대용량 파일을 블록 구조로 우겨넣는다.

그냥 대용량 파일을 분산저장하는 시스템이라고 이해하면 편할 것 같다.

참고

http://www.incodom.kr/hadoop_%EC%B4%9D%EC%A0%95%EB%A6%AC

728×90

반응형

키워드에 대한 정보 하둡 에코 시스템

다음은 Bing에서 하둡 에코 시스템 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \u0026 Hadoop 1

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기

Hadoop #Ecosystem의 #이해와 #활용 #- #Hadoop #소개 #\u0026 #Hadoop #1


YouTube에서 하둡 에코 시스템 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 Hadoop Ecosystem의 이해와 활용 – Hadoop 소개 \u0026 Hadoop 1 | 하둡 에코 시스템, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment