Skip to content

[09-24] Hadoop 의 YARN 과 Eco System #15

@snaag

Description

@snaag

Hadoop 의 YARN 과 Eco System

YARN

  • Yet Another Resource Negotiator
  • 빅데이터의 지휘자 와 같은 역할
    • 리소스를 분석해서 적절한 Job 에게 적절하게 할당함
    • 하둡 클러스터에 데이터 처리를 동시에 담당
    • Demon 을 통해 자원 관리 역할을 수행
  • 태초의 리소스 매니저
    • 각 Node 별로 Job Tracker (데몬) 가 있었는데,
    • 얘가 상태를 Main Node 에게 알려줌
    • 하둡은 이 정보를 토대로 잡 수행
    • 그러나 하둡 클러스터 전체적인 관리는 못하여 활용도가 떨어지는 경우가 생김
  • 이후에 Hadoop Cluster 에 YARN 이 추가됨

YARN 데몬

image

  • 리소스 매니저 (RM, Resource Manager) + 노드 관리자 (NM, Node Manager)
  • RM
    • Hadoop Cluster 의 Master Node 에서 수행됨, 하나만 존재
    • YARN 의 핵심이 되는 Manager
    • 전체의 Resource 고려하여 Hadoop 의 Job 들의 스케줄링 담당
  • NM
    • 각 Node 에서 수행, 여러개 존재
    • Resource Manager 와 각 노드와의 커뮤니케이션 담당
      • Resource Manager 에게 각 Node 의 Resource 현황 알림
      • 할당된 작업 수행 및 모니터링

YARN 을 이용한 어플리케이션 실행

  • YARN 을 통해 Hadoop Job 이 실행되면, 어떤 절차가 일어날까?
  1. Hadoop Job 실행 시, RM 이 각각의 Slave Node 에 container 생성
  2. Slave Node 의 사용 가능한 리소스를 container 에 할당
    • Memory, CPU 등
  3. 어플리케이션 시작되면, Application Master (AM) 라는 데몬이 생성됨
    • 어플리케이션 당 한개
    • 각 Node 의 Container 와 컨택하여 Job 수행
    • Resource 가 추가로 필요하면, Container 를 더 요청하여 Job 수행 함

image

YARN 사용

  • Hadoop 에서 YARN 과 관련된 툴 제공
    • Hue Job Browser
    • YARN Web UI
    • YARN Command line
  • Clouder 를 사용할 경우 YARN 관리자는 Cloudera Manager 를 사용함
    • 개발자에게 유용함

Hadoop Eco System 이란

image

  • 하둡 Eco System 이란
    • HDFS, YARN 에 추가해서 선택적으로 사용 가능한 컴포넌트들

하둡 에코 시스템 종류

  • 데이터베이스 HBase
  • ETL (데이터 추출) Apache Sqoop
  • ETL (데이터 추출) Apache Flume
  • 데이터 처리 Apache Pig
  • 데이터 처리 Apache Hive
  • Workflow Apache Oozie
  • Security Apache Sentry
  • UI Apache Hue

데이터베이스

HBase

  • HDFS
    • 성능은 향상되지만 파일 이용 시 제약 사항이 존재함
      • 업데이트가 되지 않고 index 가 없음
      • 순차적으로 read
      • 특정 데이터에 대한 서치 어려움
  • 때문에 Hadoop 에서 Apache HBase 를 제공하고 주로 사용함
  • Apache HBase: 하둡 데이터 베이스
    • NoSQL 의 일종, HDFS 기반
    • 빅데이터를 저장/관리할 수 있도록 확장 가능한 데이터베이스
      • 수백테라, 페타바이트 가능
    • 하나의 Table 에 수백,수천개의 Column 을 가질 수 있음
    • 비정형 데이터 가능
    • 각 row 에 대해서 insert, retrieve 가능

ETL (데이터 추출)

Apache Sqoop

  • 데이터 소스에서 데이터를 ETL 작업을 수행하는 Eco-System
  • SQL <-> HDFS
    • SQL -> HDFS 로 읽어와 저장할 수 있음
    • HDFS -> SQL 로 읽어와 저장할 수 있음
  • cf. Apache Flume (로그 파일)

Apache Flume

image

  • 서버의 로그 파일에서 데이터를 읽어서 가져옴

데이터 처리

  • MR, Spark 는 난이도가 있음

Apache Pig

image

  • Yahoo 에서 만듦
  • 태초에는 Hadoop 을 다루기 쉬운 직관적인 스크립트 언어인 Pig Latin 로 개발됨
  • 아파치 프로젝트에서 채택되어 Apache Latin 이 됨
  • 실행 시 MR 이 알아서 만들어지고 실행됨

Apache Hive

image

  • SQL 과 거의 유사한 SQL Style 의 언어 (HiveQL)
  • Sqoop 과 결합하여 주로 사용
  • HDFS 의 파일을 RDBS 처럼 보고 프로그램 처리
  • 인터프리터가 클라이언트에 있음
  • 실행 시 MR 이 알아서 만들어지고 실행됨

UI

Apache Hue

  • Hadoop User Experience
  • 웹 인터페이스 제공
    • UI 로 데이터에 쉽게 접근 가능
    • 데이터 업로드, 쿼리 수행 등이 쉬움

Workflow

Apache Oozie

  • workflow: 조건에 따라 실행하는 흐름
  • ex. 에러가 발생하면, 이런 메시지를 보내라 등

Security

Apache Sentry

  • 사용자의 Access Control 담당
  • 대부분의 Component 와 연계

참고

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions