자격증/빅데이터분석기사

[빅데이터분석기사 필기] 하둡 에코시스템의 다양한 기술과 기출문제

j9m 2022. 9. 30. 03:16
반응형

하둡 에코시스템(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. 다음 중 인메모리 기반의 데이터 처리와 연관된 오픈소스 프로젝트는?

① 스파크

 맵리듀스

③ 하이브

 피그

더보기

① 스파크

 

반응형