Hadoop의 데이터 처리: Hadoop 구성 요소 설명 [2022]

게시 됨: 2021-01-03

World Wide Web의 기하급수적인 성장과 함께 생성되는 데이터도 기하급수적으로 증가했습니다. 이로 인해 엄청난 양의 데이터가 생성되었고 기존의 관계형 데이터베이스 시스템으로 이 엄청난 양의 데이터를 처리하고 저장하는 것이 어려웠습니다.

또한 생성된 데이터는 정형화된 형태뿐 아니라 동영상, 이미지 등의 비정형 형태도 존재합니다. 이러한 데이터는 관계형 데이터베이스에서 처리할 수 없습니다. 이러한 문제를 해결하기 위해 Hadoop이 등장했습니다.

Hadoop의 데이터 처리에 대해 알아보기 전에 Hadoop과 해당 구성 요소에 대한 개요를 살펴보겠습니다. Apache Hadoop은 대용량 데이터를 빠르고 효율적으로 저장하고 처리할 수 있는 프레임워크입니다. 방대한 양의 정형 및 비정형 데이터를 저장하는 데 사용할 수 있습니다. 하둡 에코시스템 및 구성 요소에 대해 자세히 알아보세요.

Hadoop의 핵심 구성 요소는 다음과 같습니다. –

목차

하둡의 빌딩 블록

1. HDFS(저장 계층)

이름에서 알 수 있듯이 Hadoop 분산 파일 시스템은 Hadoop의 스토리지 계층이며 분산 환경(마스터 및 슬레이브 구성)에 데이터를 저장하는 역할을 합니다. 데이터를 여러 데이터 블록으로 분할하고 다른 데이터 노드에 저장합니다. 또한 이러한 데이터 블록은 노드 중 하나가 다운될 때 데이터 손실을 방지하기 위해 다른 데이터 노드에 복제됩니다.

데이터 처리를 위해 실행되는 두 가지 주요 프로세스가 있습니다.

ㅏ. 네임노드

마스터 머신에서 실행 중입니다. 파일 시스템에 저장된 모든 파일의 위치를 ​​저장하고 클러스터 전체에서 데이터가 있는 위치를 추적합니다. 즉, 파일의 메타데이터를 저장합니다. 클라이언트 응용 프로그램이 데이터에 대해 특정 작업을 수행하려는 경우 NameNode와 상호 작용합니다. NameNode는 요청을 받으면 필요한 데이터가 있는 데이터 노드 서버 목록을 반환하여 응답합니다.

비. 데이터노드

이 프로세스는 모든 슬레이브 머신에서 실행됩니다. 기능 중 하나는 각 HDFS 데이터 블록을 로컬 파일 시스템의 별도 파일에 저장하는 것입니다. 즉, 블록 형태의 실제 데이터를 담고 있습니다. 주기적으로 하트비트 신호를 보내고 NameNode의 데이터 액세스 요청을 기다립니다.

2. MapReduce (처리 계층)

방대한 양의 데이터를 더 빠르게 처리하기 위해 Hadoop 프레임워크 위에 사용되는 Java 기반 프로그래밍 기술입니다. 병렬 처리 및 내결함성 방식으로 작업의 더 빠른 실행을 가능하게 하는 많은 데이터 노드를 사용하여 분산 환경에서 이 거대한 데이터를 처리합니다.

MapReduce 작업은 데이터 세트를 여러 데이터 덩어리로 분할하여 매퍼가 처리할 수 있도록 키-값 쌍으로 추가 변환합니다. 데이터의 원시 형식이 처리에 적합하지 않을 수 있습니다. 따라서 InputSplit 함수와 RecordReader를 사용하여 맵 단계와 호환되는 입력 데이터가 생성됩니다.

InputSplit은 개별 매퍼가 처리할 데이터의 논리적 표현입니다. RecordReader는 이러한 분할을 키-값 쌍의 형태를 취하는 레코드로 변환합니다. 기본적으로 입력의 바이트 지향 표현을 레코드 지향 표현으로 변환합니다.

그런 다음 이러한 레코드는 추가 데이터 처리를 위해 매퍼에 제공됩니다. MapReduce 작업은 주로 Map 단계, Shuffle 단계 및 Reduce 단계의 세 단계로 구성됩니다.

ㅏ. 지도 단계

데이터 처리의 첫 번째 단계입니다. 맵 단계의 주요 작업은 RecordReader의 각 입력을 처리하고 이를 중간 튜플(키-값 쌍)으로 변환하는 것입니다. 이 중간 출력은 매퍼에 의해 로컬 디스크에 저장됩니다.

이러한 키-값 쌍의 값은 RecordReader에서 입력으로 받은 값과 다를 수 있습니다. 맵 단계에는 로컬 리듀서라고도 하는 결합기가 포함될 수도 있습니다. 그들은 데이터에 대해 집계를 수행하지만 하나의 매퍼 범위 내에서만 수행합니다.

계산이 서로 다른 데이터 노드에서 수행되기 때문에 동일한 키와 관련된 모든 값을 하나의 감속기로 병합하는 것이 필수적입니다. 이 작업은 파티셔너가 수행합니다. 이러한 키-값 쌍에 대해 해시 기능을 수행하여 함께 병합합니다.

또한 모든 작업이 리듀서에 고르게 분할되도록 합니다. 파티셔너는 일반적으로 둘 이상의 리듀서로 작업할 때 중요합니다.

비. 셔플 및 정렬 단계

이 단계는 매퍼에서 얻은 중간 출력을 감속기로 전송합니다. 이 과정을 셔플링이라고 합니다. 매퍼의 출력도 감속기로 전송하기 전에 정렬됩니다. 정렬은 키-값 쌍의 키를 기반으로 수행됩니다. 전체 데이터가 수신되기 전에도 리듀서가 데이터에 대한 계산을 수행할 수 있도록 하여 결국 계산에 필요한 시간을 줄이는 데 도움이 됩니다.

키가 정렬되면 리듀서가 입력으로 다른 키를 얻을 때마다 이전에 수신된 데이터에 대해 리듀스 작업을 수행하기 시작합니다.

씨. 위상 감소

맵 단계의 출력은 감소 단계의 입력으로 사용됩니다. 이러한 키-값 쌍을 취하고 여기에 reduce 함수를 적용하여 원하는 결과를 생성합니다. 키와 키와 관련된 값은 특정 작업을 수행하기 위해 reduce 함수에 전달됩니다.

데이터를 필터링하거나 결합하여 집계된 출력을 얻을 수 있습니다. reduce 함수를 실행한 후 0개 이상의 키-값 쌍을 생성할 수 있습니다. 이 결과는 Hadoop 분산 파일 시스템에 다시 기록됩니다.

3. YARN(관리 계층)

또 다른 Resource Navigator는 Hadoop의 리소스 관리 구성 요소입니다. 자원 할당을 위해 서로 통신하는 각 노드(슬레이브 머신의 Node Manager 및 마스터 노드의 Resource Manager)에서 실행 중인 백그라운드 프로세스가 있습니다. 리소스 관리자는 모든 애플리케이션 간의 리소스를 관리하고 요청을 노드 관리자에게 전달하는 YARN 계층의 핵심입니다.

Node Manager는 시스템의 메모리, CPU, 디스크와 같은 리소스 사용률을 모니터링하고 이를 Resource Manager에 전달합니다. 모든 데이터 노드에 설치되며 데이터 노드에서 작업 실행을 담당합니다.

필독: 빅 데이터 엔지니어를 위한 상위 10가지 Hadoop 도구

결론

Hadoop에서 데이터 처리를 위한 전체 워크플로는 다음과 같이 요약할 수 있습니다.

  • 입력 분할 ; HDFS에 있는 데이터를 여러 데이터 블록으로 논리적으로 분할합니다. 데이터 분할 방법에 대한 결정은 Inputformat 에 의해 수행됩니다 .
  • 데이터는 RecordReader에 의해 키-값 쌍으로 변환됩니다. RecordReader는 바이트 지향 데이터를 레코드 지향 데이터로 변환합니다. 이 데이터는 매퍼에 대한 입력으로 사용됩니다.
  • 사용자 정의 함수에 불과한 매퍼는 이러한 키-값 쌍을 처리하고 추가 처리를 위해 중간 키-값 쌍을 생성합니다.
  • 이러한 쌍은 결합기에 의해 로컬로 축소되어(하나의 매퍼 범위 내에서) 매퍼에서 감속기로 전송할 데이터의 양을 줄입니다.
  • 파티셔너는 동일한 키를 가진 모든 값이 동일한 리듀서로 병합되고 작업이 리듀서 간에 고르게 분산되도록 합니다.
  • 그런 다음 이러한 중간 키-값 쌍은 리듀서로 섞이고 키를 기준으로 정렬됩니다. 이 결과는 입력으로 감속기에 제공됩니다.
  • reduce 함수는 각 키의 값을 집계하고 결과는 RecordWriter를 사용하여 HDFS에 다시 저장됩니다. HDFS에 다시 쓰기 전에 데이터를 써야 하는 형식은 Outputformat 에 의해 결정됩니다 .

빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하십시오. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

미래의 기술 마스터 - 빅 데이터

400시간 이상의 학습. 14개 언어 및 도구. IIIT-B 졸업생 현황.
IIT Bangalore의 빅 데이터 고급 인증 프로그램