728x90
반응형
하둡 에코시스템(Hadoop Ecosystem)
- 하둡 프레임워크를 이루고 있는 다양한 서브 프로젝트들의 모임이다.
- 하둡 에코시스템은 수집, 저장, 처리 기술과 분석, 실시간 SQL 질의 기술로 구분할 수 있다.
하둡(Hadoop)
- 아파치 하둡은 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어입니다.
- 분산처리 시스템인 구글파일시스템(GFS)을 대체할 수 있는 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)과 맵리듀스를 구현한 것입니다.
비정형 데이터 수집 기술
Chukwa(척와)
- 분산 시스템으로부터 데이터를 수집, 하둡 파일 시스템에 저장, 실시간 분석 기능을 제공한다.
- 에이전트와 컬렉터로 구성되어 있다.
- 데이터 처리 방식에는 아키아빙과 디먹스가 있다.
Flume(플럼)
- 플럼은 대량의 로그 데이터를 효율적으로 수집, 집계 및 이동하기 위한 안정적이고 사용 가능한 분산 소프트웨어입니다.
- 스트리밍 데이터 흐름을 기반으로 하는 간단하고 유연한 아키텍처를 가지고 있습니다. 조정 가능한 안정성 메커니즘과 많은 장애 조치 및 복구 메커니즘을 통해 강력하고 내결함성이 있습니다.
- 온라인 분석 응용 프로그램을 허용하는 단순 확장 가능한 데이터 모델을 사용합니다.
Scribe(스크라이브)
- 다수의 서버로부터 실시간으로 스트리밍 되는 로그 데이터를 수집하여 분산 시스템에 데이터를 저장하는 대용량 실시간 로그 수집 기술이다.
- 단일 중앙 스크라이브 서버와 다수의 로컬 스크라이브 서버로 구성되어 안정성과 확장성을 제공한다.
- 페이스북에서 개발한 데이터 수집 플랫폼이며, Chukwa와는 다르게 데이터를 중앙 집중 서버로 전송하는 방식이다.
- 최종 데이터는 HDFS 외에 다양한 저장소를 활용할 수 있으며, 설치와 구성이 쉽게 다양한 프로그램 언어를 지원함.
- HDFS에 저장하기 위해서는 JNI(Java Native Interface)를 이용해야 한다.
정형 데이터 수집 기술
Sqoop
- 대용량 데이터 전송 솔루션이다.
- 커넥터를 사용하여 HDFS, RDBMS, DW, NoSQL 등 다양한 저장소와 하둡 간 데이터 전송 기능을 제공하는 기술이다.
- 벌크 임포트 지원, 데이터 전송 병렬화, 직접 입력 제공, 프로그래밍 방식의 데이터 인터랙션
Hiho
- 스쿱과 같은 대용량 데이터 전송 솔루션이며 현재 깃허브에서 공개되어 있다.
- 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC인터페이스를 지원 현재는 Oracle, MySQL의 데이터만 전송 지원한다.
분산 데이터 저장
HDFS(하둡파일시스템)
- 대용량 파일을 분산된 서버에 저장하고, 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 시스템
- 장애 복구, 스트리밍 방식의 데이터 접근, 대용량 데이터 저장, 데이터 무결성
- 구성 : 네임 노드, 보조 네임 노드, 데이터 노드
- NameNode : 메타데이터 관리, DataNode 모니터링, block 관리, client 요청 접수
- 데이터를 복제해서 여러 서버에 저장하며 복제 횟수는 기본 3번이고 복제 횟수 설정 가능
- GFS와 유사한 소스코드임
분산 데이터 처리
MapReduce(맵리듀스)
- 대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크
- 모든 데이터는 키-값(KEY-VALUE) 쌍으로 구성, 데이터를 분류한다.
- Map ➡️ Shuffle ➡️ Reduce
- Map : Key-value 형태로 데이터를 취합하는 과정
- Shuffle : 데이터를 통합하여 처리하는 과정
- Reduce : 맵 처리된 데이터를 정리하는 과정
분산 데이터베이스
HBase
- HDFS의 칼럼 기반 데이터베이스
- 구글의 BigTable 논문을 기반으로 개발된 것으로, 실시간 랜덤 조회 및 업데이트가 가능하며, 각각의 프로세스들은 개인의 데이터를 비동기적으로 업데이트 할 수 있다. 단, MapReduce는 일괄처리 방식으로 수행된다.
리소스 관리
yarn(얀)
- 하둡의 맵리듀스 처리 부분을 새롭게 만든 자원 관리 플랫폼
- 리소스 매니저와 노드 매니저로 구성
- 리소스 매니저 : 스케줄러 역할을 수행하고, 클러스터 이용률 최적화를 수행
- 노드 매니저 : 노드 내의 자원을 관리하고, 리소스 매니저에게 전달 수행 및 컨테이너를 관리
- 애플리케이션마스터 : 리소스 매니저와 자원의 교섭을 책임지고, 컨테이너를 실행
- 컨테이너 : 프로그램 구동을 위한 격리 환경을 지원하는 가상화 자원
인메모리 처리
Spark(스파크)
- 대용량 데이터를 빠르게 처리하기 위한 인-메모리 기반의 분산 데이터 처리 엔진
- 오프소스 프로젝트로 데이터브릭스에서 주로 개발
- 대량의 데이터를 메모리에 유지하는 설계로 계산 성능 대폭 강화
- 일괄 처리, 실시간 처리(스트리밍), 정형데이터 SQL처리, 그래프 알고리즘, 머신러닝 등 다양한 요구사항 통합
- 필요한 데이터를 메모리에 캐시로 저장하는 인-메모리 실행 방식 채택
- 온라인 트랜잭션 처리(OLTP)보다 온라인 분석 처리(OLAP)에 더 적합
- 소규모 데이터는 일반 DBMS가 유리
- 특징 : 불변성, 복원성, 분산성
데이터 가공
Pig(피그)
- 복잡한 MapReduce 프로그래밍을 대체할 Pig Latin이라는 자체 언어를 제공.
- MapReduce API를 매우 단순화시키고 SQL과 유사한 형태로 설계되었다.
HIVE(하이브)
- 하둡 기반의 데이터웨어하우징용 솔루션
- 페이스북에서 만든 오픈소스로, SQL과 매우 유사한 HiveQL이라는 쿼리를 제공한다. 그래서 자바를 잘 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와준다.
- HiveQL은 내부적으로 MapReduce 잡으로 변환되어 실행된다.
데이터 마이닝
Mahout(머하웃)
- 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오프 소스
- 분류, 클러스터링, 추천 및 협업 필터링, 패턴 마이닝, 회귀 분석, 진화 알고리즘 등 주요 알고리즘 지원
데이터 직렬화
Avro(암바리)
- 원격 프로시저 호출 및 데이터 직렬화 프레임워크이다.
- 자료형과 프로토콜 정의를 위해 JSON을 사용하며 콤팩트 바이너리 포맷으로 데이터를 직렬화한다.
- 아파치 스파크 SQL은 데이터 소스로서 아브로에 접근할 수 있다.
실시간 SQL 질의
Tajo(타조)
- Apache Tajo는 Apache Hadoop을 위한 강력한 빅 데이터 관계형 및 분산 데이터 웨어하우스 시스템입니다.
- Tajo는 HDFS(Hadoop Distributed File System) 및 기타 데이터 소스에 저장된 대용량 데이터 세트에 대한 지연 시간이 짧고 확장 가능한 임시 쿼리, 온라인 집계 및 ETL(추출-변환-로드 프로세스)을 위해 설계되었습니다.
- SQL 표준을 지원하고 고급 데이터베이스 기술을 활용함으로써 Tajo는 다양한 쿼리 평가 전략 및 최적화 기회 전반에 걸쳐 분산 실행 및 데이터 흐름을 직접 제어할 수 있습니다.
Impala(임팔라)
- 하둡 기반의 실시간 SQL 질의 시스템
- 데이터 조회를 위한 인터페이스로 HiveQL을 사용
- 수초 내에 SQL질의 결과를 확인할 수 있으며, HBASE와 연동이 가능
워크플로우 관리
Oozie(우지)
- 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템
- 자바 서블릿 컨테이너에서 실행되는 자바 웹 애플리케이션 서버
- 맵리듀스나 피그와 같은 특화된 액션들로 구성된 워크플로우 제어
분산 코디네이션
Zookeeper(주키퍼)
- 분산 환경에서 서버들 간에 상호 조정이 필요한 다양한 서비스를 제공
- 하나의 서버에만 서비스가 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리
- 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화하여 데이터의 안정성을 보장
클러스터 관리
Ambari(암바리)
- Apache Hadoop 클러스터 관리를 단순화하기 위한 기술이다.
- Provisioning, Clustering, Monitoring
프로비저닝 : 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다
하둡 에코시스템 기출문제
Q. 다음 중 하둡 기반의 대용량 데이터의 분산 분석과 ETL을 지원하는 프로젝트로 옳은 것은 무엇인가?
① Tajo
② Pig
③ Hive
④ Oozie
더보기
① Tajo
Q. HDFS에 대한 설명으로 옳은 것은?
① 복제의 횟수는 내부에서 결정된다.
② ETL, NTFA가 상위 프로그램이다.
③ GFS와 동일한 소스코드를 사용한다.
④ 네임 노드는 저장공간에 네임노드 데이터를 같이 저장한다.
더보기
③ GFS와 동일한 소스코드를 사용한다.
Q. 다음 중 인메모리 기반의 데이터 처리와 연관된 오픈소스 프로젝트는?
① 스파크
② 맵리듀스
③ 하이브
④ 피그
더보기
① 스파크
728x90
반응형
'자격증 > 빅데이터분석기사' 카테고리의 다른 글
[빅데이터분석기사 필기] 서포트 벡터 머신(SVM)의 개념과 기출문제 (0) | 2022.10.01 |
---|---|
[빅데이터분석기사 필기] 2021년 2회차 기출문제 (2) | 2022.09.30 |
[빅데이터분석기사 필기] 데이터 저장기술 종류와 기출문제 (0) | 2022.09.29 |
[빅데이터분석기사 필기] 데이터 수집 개념 및 기출문제 (0) | 2022.09.29 |
빅데이터분석기사 필기 - 데이터 시각화 종류와 기출문제 (3) | 2022.09.29 |