일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Kafka
- jupyter
- HBase
- Scala
- SlackWebhookOperator
- Namenode
- Service
- 빅데이터
- slack app
- Lambda architecture
- 정규표현식
- java
- python
- ambari
- HIVE
- Windows
- slack
- HDFS
- execution_date
- re
- airflow
- hadoop
- HDP
- yarn
- MapReduce
- 람다 아키텍처
- LDAP
- docker
- NoSQL
- Example DAG
- Today
- Total
IT 삽질기
Hadoop 1.0과 Hadoop 2.0 (1 YARN) 본문
이번 글에서는 Hadoop 1.0과 Hadoop 2.0의 차이점에 대해서 간단하게 알아보도록 하자.
Hadoop 버전에 따른 아키텍처를 비교해서 살펴보면 아래와 같다.
Hadoop 2.0에서는 클러스터의 자원을 관리하기 위한 시스템으로 YARN이 도입되었다.
YARN은 Resource Manager와 Node Manager 2 가지 유형의 실행 데몬을 통해 핵심 서비스를 제공하게 되는데,
이는 Hadoop 1.0에 있는 JobTracker와 TaskTracker를대신해 등장한 개념이라고 생각하면 된다.
Hadoop 1.0에서의 JobTracker는 3가지 기능을 했는데
1. 클러스터 전체의 리소스 관리
2. 잡을 수행하며 성공적으로 일을 마칠 수 있도록 관리
3. 완료된 Job에 대한 이력을 저장(잡트래커의 부하를 줄이기 위해 별도의 데몬인 히스토리 서버를 이용할 수 있음)
Hadoop 2.0의 YARN에서는 이를 Resource Manager과 Application Master 2개로 분리하여 사용한다.
Resource Manager은 JobTracker의 1번 기능과 같이 클러스터 전제 자원을 사용량을 관리하며 클러스터 전체에 하나만 존재한다. Application Master는 2번 기능을 대신해서 사용되는데 분산환경 위에서 실행되는 Job마다 하나의 서버가 Application Master로 실행되어 해당 Job에 필요한 자원을 Resource Manager로 부터 할당받아 사용하고 Job 내의 Task를 관리한다. 마지막으로 Timeline Server을 이용해 3번 기능을 하게 된다.
또한 Hadoop 2.0에서는 Node Manager라는 개념도 등장하는데 Node Manager은 모든 노드에서 실행되며 컨테이너를 구동하고 모니터링 하게 된다.
Node Manager은 Hadoop 1.0에서의 TaskTracker의 역할을 한다고 생각하면 되는데 Task를 실행하고 진행 상황을 JobTracker에 전송하는 역할을 한다.
결과적으로 Hadoop 1.0 에서의 JobTracker는 Resource Manager, Application Master, Timeline Server로 분리되었고,
TaskTracker는 NodeManager로 변경되어 사용되게 된다.
Hadoop 2.0의 장점
그렇다면 Hadoop 2.0으로 변경되면서 좋아진 점은 무엇이 있을까
1. 확장성
Hadoop 1.0에서는 JobTracker가 하나의 노드에서 실행되며 클러스터 전체의 리소스 관리와 실행중인 Job을 관리해야 하므로 4천대 이상의 클러스터나 4만개 이상의 Task를 동시에 처리하지 못했지만, Hadoop 2.0에서는 YARN의 Resource Manager과 Application Master을 이용해 이 문제를 해결했다.
2. 효율성
Hadoop 1.0에서 TaskTracker은 MapReduce 작업을 할 때 slot로 구분된 고정된 크기를 정적할당하여 사용하였는데, 이는 Map slot과 Reduce slot가 나눠져 있다는 것으로 자원이 낭비되는 문제점이 발생했다. Hadoop 2.0 YARN에서는 slot가 아닌 일종의 리소스 풀을 이용해 관리하여 자원을 효율적을 사용할 수 있게 되었다.
3. 다양한 분산처리 환경 지원
MapReduce 이외의 다른 분산 처리 환경을 지원하며 YARN API를 이용하여 새로운 분산처리 환경을 제공하게 되었다.
Spark, Storm 등 다양한 분산처리 시스템이 YARN을 기반으로 동작하며, MapReduce의 배치처리방식뿐 아니라 Interactive, Realtime, Streaming의 네가지 주요 데이터 처리 방식을 모두 지원한다.
참고자료
'BigData > Hadoop' 카테고리의 다른 글
Resource Manager Active Standby 전환 이슈 (0) | 2021.03.09 |
---|---|
Ambari HDFS component 재시작 관련 이슈 해결(hadoop_lzo) (0) | 2021.03.08 |
HDFS 데이터 읽기/쓰기 (0) | 2019.06.09 |
HDFS란 (0) | 2019.06.02 |
Hadoop이란 (0) | 2019.03.13 |