Hadoop Ecosystem/Hadoop
[HDFS] JMX Metrics 값 불러오기
Hadoop의 HDFS를 사용하다보면 현재 HDFS의 사용량을 여러가지 방법들로 확인합니다. 예를 들어 NameNode의 Web UI를 접속해 확인하거나 Ambari와 같은 배포판 관리 시스템에서도 쉽게 확인할 수 있습니다. 그런데 만약 모니터링 시스템을 직접 개발해서 사용한다면 코드 상에서 어떻게 HDFS의 정보를 가져올 수 있을까요? 이 방법에 대해 소개해드리겠습니다. NameNode Web UI 우리가 흔히 원하는 HDFS 정보들은 NameNode Web UI에서 모두 제공을 하고있습니다. 보통 NameNode의 50070 포트로 쉽게 접속할 수 있습니다. ( http://{NameNode}:50070 ) NameNode JMX 위의 NameNode Web UI는 HDFS 정보들을 어디서 가져오는 ..
[Hadoop] YARN Capacity scheduler 특징 및 Queue 옵션
YARN Scheduler란 YARN Scheduler란 할당시킬 리소스를 결정하는 알고리즘으로써 다양한 설정 값들을 통해 클러스터의 리소스를 효율적으로 사용할 수 있습니다. YARN은 기본적으로 Hadoop 플랫폼에서 작동하는 어플리케이션에 리소스를 할당시키고 관리하는 역할을 맡고 있습니다. 어플리케이션이 제출되어 AM( Application Master )가 생성되면 아래 그림과 같은 절차가 진행됩니다. 이 때 AM이 RM( ResourceManager )에게 리소스 요청을 하면 RM은 Scheduler를 통해 할당시킬 리소스의 양을 결정합니다. YARN Scheduler 종류 Scheduler의 종류로는 아래 3가지가 존재합니다. 이 중 Capacity scheduler가 기본 default 값으로..
[Hadoop] HDFS NameNode의 Metadata 관리와 Failover 상세 과정
NameNode HDFS에서 모든 데이터의 metadata를 관리하는 노드. Failover 장애 극복 기능으로써 어떤 시스템의 문제가 발생했을 시, 예비 시스템으로 자동 전환되는 기능. 관련 글 [Hadoop] HDFS - The Hadoop Distributed File System 이번 글에서는 HDFS의 NameNode가 HA(High Availability) 구성된 상태에서 Failover가 일어나는 과정에 대해서 소개하도록 하겠습니다. 공부하면 아시겠지만, HDFS에서는 가장 중요하다고 할 수 있는 metadata를 NameNode가 관리합니다. 그래서 NameNode 서버가 죽게 된다면 이는 곧 HDFS를 사용할 수 없음을 뜻합니다. 그래서 이를 방지하고자 Secondary NameNode를..
[Hadoop] YARN - Yet Another Resource Negotiator
YARN이란? Cluster 환경에서 resource 관리와 application 실행을 담당하는 component. 이번 글에서 소개할 component는 Hadoop YARN 입니다. Cluster의 resource를 관리하는 역할을 하며 비슷한 역할을 담당하는 component 중에서는 가장 많이 쓰이고 있습니다. YARN이란? Hadoop이 처음 나왔을 때 1.0 버전에서는 여러 component들이 존재하지 않고 MapReduce만 존재했습니다. 그래서 cluster의 resource 관리 및 scheduling과 task 수행을 모두 MapReduce의 JobTracker가 담당했습니다. 하지만 MapReduce 이외의 다양한 component들이 생기고 수행해야하는 application의 수..
[Hadoop] MapReduce - Simplified Data Processing on Large Clusters
MapReduce란? HDFS에 저장되어 있는 빅데이터를 효율적으로 작업 및 처리를 하기 위한 분산 프로그래밍 모델 HDFS에 이어서 이번 글에서는 MapReduce 를 소개하겠습니다. HDFS를 공부했다면 "데이터는 HDFS에 저장해서 여러 DataNode에 저장되어 있는데 이 데이터를 어떻게 사용하지?"라는 궁금증이 생길 수 있습니다. HDFS에 저장되어있는 데이터를 사용하기 위해서 작업을 수행하는 서버로 데이터를 불러와 직접 어플리케이션을 실행시킬 수 있겠지만, 이것은 올바른 빅데이터 사용법이 아닙니다. 왜냐하면 상당히 큰 양의 데이터를 HDFS에 저장했는데, 작업을 위해서 이 데이터를 다시 작업 서버로 가져오는 비용은 데이터 양이 커짐에 따라 증가하기 때문입니다. 그래서 올바른 빅데이터 사용법은 ..
[Hadoop] HDFS - The Hadoop Distributed File System
HDFS란? 하둡 분산 파일 시스템 (Hadoop Distributed File System)으로써 대용량 데이터 사용 및 관리를 효율적으로 하기 위해 설계한 파일 시스템. 이번 글부터는 Hadoop Component들을 하나씩 소개해드릴 예정입니다. 하둡이라는 것이 이미 10년 전부터 유행해 인기가 있었지만 최근 AI 및 딥러닝이 발전함과 동시에 빅데이터라는 분야가 동시에 핫해졌습니다. 빅데이터도 분야가 크게 두 가지로 데이터 엔지니어링, 데이터 분석으로 나눠집니다. 이 중에서 하둡이 메인으로써 사용되는 것이 빅데이터 엔지니어링입니다. 하둡 생태계에서 가장 기본인 HDFS 부터 소개하겠습니다. HDFS 는 하둡 분산 파일 시스템으로써 대용량 데이터 사용 및 관리를 하기 위해 설계한 파일 시스템입니다. ..