티스토리 뷰
[지금 빅데이터로 갑니다] 하둡의 진화 YARN(Yet Another Resource Negotiator) #2
SK(주) C&C 블로그 운영자 2014. 8. 4. 14:16
> 하둡의 진화 YARN(Yet Another Resource Negotiator) #1 먼저 읽기 <
3. 하둡 2.0
3.1. 하둡2.0 구성요소
출처 : http://www.edureka.in/blog/introduction-to-hadoop-2-0-and-advantages-of-hadoop-2-0/
Resource Manager 클러스터마다 존재하며, 클러스터 전반의 자원 관리와 테스크들의 스케쥴링을 담당한다 클라이언트로부터 애플리케이션 실행 요청을 받으면 그 애플리케이션의 실행을 책임질 Application Master를 실행한다. 또한 클러스터 내에 설치된 모든 Node Manager와 통신을 통해서 각 서버마다 할당된 자원과 사용중인 자원의 상황을 알 수 있으며, Application Master들과의 통신을 통해 필요한 자원이 무엇인지 알아내어 관리하게 된다. Resource Manager내부에는 여러 개의 컴포넌트들이 존재하며, Scheduler, Application Manager, Resource Tracker 세개의 메인 컴포넌트가 있다. ① Scheduler Node Manager들의 자원 상태를 관리하며 부족한 리소스들을 배정한다. Scheduler 는 프로그램의 상태를 검사하거나 모니터링 하지 않으며, 순수하게 스케쥴링 작업만 담당한다. 스케쥴링이란 자원 상태에 따라서 테스크들의 실행 여부를 허가해 주는 역할만 담당하며, 그 이상의 책임은 지지 않다. 즉, 프로그램 오류나 하드웨어의 오류로 문제가 발생한 프로그램을 재 시작시켜주지 않으며, 프로그램에서 요구하는 리소스(CPU, Disk, 네트워크등)에 관련된 기능만 처리한다. ② Application Manager Node Manager 에서 특정 작업을 위해서 Application Master를 실행하고, Application Master의 상태를 관리한다. 여기서 Application Master라는 용어가 나오는데 YARN에서 실행되는 하나의 테스크를 관리하는 마스터 서버를 말한다. ③ Resource Tracker Container가 아직 살아 있는지 확인하기 위해서, Application Master재 시도 최대 횟수, 그리고 Node Manager가 죽은 것으로 간주 될 때까지 얼마나 기다려야 하는지 등과 같은 설정 정보를 가지고 있다. Node Manager 노드 당 한개씩 존재한다. 해당 Container의 리소스 사용량을 모니터링 하고, 관련 정보를 Resource Manager에게 알리는 역할을 담당한다. Application Master 와 Container로 구성되어 있다. ① Application Master 하나의 프로그램에 대한 마스터 역할을 수행하며, Scheduler 로부터 적절한 Container를 할당 받고, 프로그램 실행 상태를 모니터링하고 관리한다. ② Container 3.2. 하둡 2.0 동작방식 ① 클라이언트는Application Master 자체를 실행하는 필요한 데이터를 포함하는 응용프로그램을 제출한다. ② Resource Manager는 Container 할당을 책임지는 Application Master을 시작합니다. ③ Application Master가 Resource Manager에 등록되고 클라이언트가 Resource Manager과 통신할 수 있게 된다. ④ Application Master는 resource-request프로토콜을 통해 적절한 리소스의 Container 를 요청한다. ⑤ Container 가 성공적으로 할당되면, Application Master는 Container 실행 스펙를 Node Manager에게 제공하여 Container 를 실행시킨다. 실행 스펙를 일반적으로 Container 가 Application Master 그 자체와 통신하기 위해 필요한 정보를 포함하고 있다. ⑥ 응용프로그램 코드는 Container 에서 실행되고 진행률, 상태 등의 정보를 응용프로그램-스펙 프로토콜을 통해 응용프로그램의 Application Master 에게 제공한다. ⑦ 응용프로그램 실행 중 클라이언트는 상태, 진행률 등을 얻기 위해 Application Master 와 응용프로그램-스팩 프로토콜을 통해 직접 통신한다. ⑧ 일단 응용프로그램이 완료되고 모든 필요한 작업이 종료되면, Application Master 는 Resource Manager로의 등록을 해제하고 자신의 컨테이너를 다른 용도로 사용할 수 있도록 종료한다. Resource Manager 는 기본적으로 순수하게 하둡 클러스터의 전체적인 리소스 관리만을 담당하는 심플한 모듈이다. Application Master 는 Resource Manager 과 협상하여 하둡 클러스터에서 자기가 담당하는 어플리케이션에 필요한 리소스를 할당받고 Node Manager 과 협의하여 자기가 담당하는 어플리케이션을 실행하고 그 결과를 주기적으로 모니터링한다. 자기가 담당하는 애플이케이션의 실행 현황을 주기적으로 Resource Manager 에게 보고한다. 즉, 특정한 어플리케이션의 처리 라이브러리를 Application Master 에 올림으로써 하나의 하둡 클러스터에서 다양한 어플리케이션이 돌아 가도록 하는 것이 핵심이다. 이러한 구조의 변화에 의해서 사용자는 데이터의 속성에 맞는 다양한 어플리케이션을 처리하는 별도의 Application Master 을 만들어서 확장시킬 수 있다. 4. 하둡1.0 과 하둡2.0 비교 5. 하둡2.0을 활용한 배포판 소개 <맵알(MAPR) 하둡 플랫폼> 맵알은 하둡 클러스터 내에서 다양한 버전의 하둡 플랫폼을 동시 지원하며, 실시간 데이터 처리를 현실적으로 구현할 수 있다. 기존 MapReduce(MapReduce)는 배치 작업 형태였지만, 스파크(Spark)는 하둡에 저장되는 하둡에 저장되는 데이터를 바로 분석, 비즈니스에 능동 대처할 수 있도록 한다. 특히 MapReduce를 통해 만들어야 했던 코드를 스파크를 활용하면 짧고 간단하게 바꾸어, 크게는 수백배까지 큰 폭의 성능 향상을 얻을 수 있다. <호튼웍스(Hortonworks) HDP 2.0> HDP 2.0은 하둡2의 YARN 아키텍처를 포함한다. YARN 은 MapReduce2로도 불리는 리소스 관리 엔진으로, 프로세싱 엔진과 앱에 하드웨어 리소스를 분배하고 관리한다. YARN 도입으로 하둡은 MapReduce뿐 아니라 다양한 데이터처리엔진을 쉽게 플러그인할 수 있다. 호튼웍스는 HDP 2.0을 통해 여러 하둡 스택도 최신 버전으로 업데이트했다. HBASE, 피그, 스쿱, 우지, 주키퍼, 머하웃, 암바리 등이 최신버전으로 탑재됐다. <클라우데라(Cloudera) CDH 4.0> 클라우데라는 CDH 4.0 부터 YARN 을 지원하고 있다. 배포판에는 SQL 쿼리를 이용해 HDFS에 저장된 데이터를 실시간 처리하는 엔진인 임팔라(Impala)와 실시간으로 데이터를 분석하는 스파크(Spark)가 탑재되어 있다. 글) Infra서비스 1팀 김영석 차장(daimang@sk.com)
CPU, 디스크(Disk), 메모리(Memory) 등과 같은 속성으로 정의된다. 이 속성은 그래프 처리(Graph processing)와 MPI와 같은 여러 응용 프로그램을 지원하는데 도움이 된다. 모든 작업(job)은 결국 여러 개의 테스크로 세분화되며, 각 테스크는 하나의 Container 안에서 실행이 된다. 필요한 자원의 요청은 Application Master가 담당하며, 승인 여부는 Resource Manager가 담당한다. Container 안에서 실행할 수 있는 프로그램은 자바 프로그램뿐만 아니라, 커맨드 라인에서 실행할 수 있는 프로그램이면 모두 가능하다.출처 : http://hortonworks.com/blog/apache-hadoop-yarn-concepts-and-applications/
현재 가용한 리소스들에 대한 정보를 바탕으로 이러한 리소스들을 각 애플리케이션에 일종의 정책으로서 부여하고 그 이용 현황을 파악하는 업무에 집중한다.
Application Master 의 정확한 정의는 특정 프레임워크 (MapReduce, Storm 등 다양한 어플리케이션) 별로 잡(Job)을 실행시키기 위한 별도의 라이브러리이다. 예를 들면, 기존의 MapReduce는 MapReduce Application Master 에서, 기존의 스트리밍 처리는 스톰(Storm) Application Master 에서 각자 담당하고 책임을 지게 된다.출처 - http://www.acrofan.com/ko-kr/commerce/content/20140623/0001030201
'Biz & Tech > ICT Report' 카테고리의 다른 글
[빅데이터, 너 어디까지왔니?]<Biz. Enabler로서의 Big Data> 세미나에 다녀와서 (0) | 2014.12.08 |
---|---|
[지금 빅데이터로 갑니다] Big Data기반 IT인프라 운영관리 (0) | 2014.08.25 |
[빅데이터, 너 어디까지왔니?] 점쟁이 문어는 잊어라! 대세는 빅 데이터다! (0) | 2014.07.04 |
[지금 빅데이터로 갑니다] UX 강화 관점의 Big Data 분석 활용 방안 (0) | 2014.06.03 |
- Total
- Today
- Yesterday