what is hadoop apache hadoop tutorial
초보자를위한이 Apache Hadoop 자습서에서는 BigData Hadoop, 기능, 프레임 워크 및 아키텍처에 대해 자세히 설명합니다.
기본 C ++에 대한 정의되지 않은 참조
이전 튜토리얼에서 빅 데이터에 대해 자세히 논의했습니다. 이제 문제는 믿을 수 있고 정확한 결과로 이러한 방대한 양의 데이터를 어떻게 처리하고 처리 할 수 있는지입니다.
실제로 Apache에서 제공하고 Java로 구동되는 훌륭한 솔루션이 있습니다. Hadoop 프레임 워크 .
=> Easy BigData 교육 시리즈를 읽어보십시오.
학습 내용 :
Hadoop이란?
Apache Hadoop은 모든 유형의 데이터 (Structured, Unstructured 및 Semi-structured)를 관리하기위한 오픈 소스 프레임 워크입니다.
우리 모두 알고 있듯이 데이터를 처리, 저장 및 관리하려면 RDBMS가 최상의 솔루션입니다. 그러나 데이터는 RDBMS로 처리 할 수 있도록 구조화 된 형식이어야합니다. 또한 데이터의 크기가 증가하면 RDBMS에서 처리 할 수 없으므로 정기적으로 데이터베이스 정리를 수행해야합니다.
이로 인해 과거 데이터 손실이 발생할 수 있으며 일기 예보, 은행, 보험, 판매 등과 같은 일부 산업에서 정확하고 신뢰할 수있는 결과를 생성 할 수 없습니다. RDBMS의 또 다른 문제는 주 서버가 다운되면 중요한 정보를 잃을 수 있다는 것입니다. 데이터와 많은 고통.
이 자습서에서는 Apache Hadoop으로 이러한 문제를 어떻게 극복 할 수 있는지 살펴 봅니다.
Hadoop은 분산 파일 시스템이며 대용량 데이터 (페타 바이트 및 테라 바이트 단위의 데이터)를 저장할 수 있습니다. 데이터 처리 속도도 매우 빠르며 내결함성 시스템이 매우 높기 때문에 신뢰할 수있는 결과를 제공합니다.
Hadoop은 분산 컴퓨팅 환경에서 대용량 데이터 세트의 저장 및 처리를 지원하는 Java 기반 오픈 소스 프로그래밍 프레임 워크입니다.
Hadoop은 상용 하드웨어를 사용하는 클러스터 개념을 기반으로합니다. 복잡한 구성이 필요하지 않으며 더 저렴하고 간단하며 가벼운 구성 하드웨어로 Hadoop 환경을 설정할 수 있습니다.
간단히 말해서 클러스터 개념은 여러 시스템에 복제 형식으로 저장되는 데이터이므로 데이터가있는 위치 중 하나에서 문제 또는 재해가 발생하면 다른 위치에서 안전하게 해당 데이터의 복제본을 사용할 수 있어야합니다. .
Hadoop 대 RDMBS
다음은 RDBMS에 비해 Hadoop의 장점을 설명하는 몇 가지 사항입니다.
풍모 | 하둡 | RDBMS |
---|---|---|
저장 | 매우 높은 저장 용량. | 빅 데이터를 저장할 수 없습니다. |
건축물 | Hadoop은 HDFS, MapReduce 및 YARN을 기반으로합니다. | RDBMS는 ACID 속성을 기반으로합니다. |
음량 | 대량의 데이터를 처리 할 수 있습니다. | RDBMS는 대량의 데이터를 처리 할 수 없습니다. |
다양한 / 데이터 유형 | 비디오, 이미지, CSV 파일, xml 등과 같은 구조적, 반 구조적 및 비 구조적 데이터를 처리 할 수 있습니다. | 구조화 된 데이터 만 처리합니다. |
속도 | 대용량 데이터의 빠른 처리. | 많은 양의 데이터를 처리하는 동안 매우 느립니다. |
처리량 | 높은 처리량. | 낮은 처리량. |
결함 허용 | 아주 좋아 | 메인 서버가 다운되면 손실 된 데이터를 복구 할 수 없습니다. |
신뢰성 | 매우 안정적이며 정확한 과거 및 현재 보고서를 생성합니다. | Bigdata 측면에서 신뢰할 수 없습니다. |
Hadoop 기능
이제 우리는 Hadoop의 정확한 정의를 알고 있습니다. 한 걸음 더 나아가 Hadoop에서 사용하는 용어에 익숙해지고, 아키텍처를 배우고, Bigdata에서 정확히 어떻게 작동하는지 살펴 보겠습니다.
Hadoop 프레임 워크는 다음 개념 또는 모듈을 기반으로합니다.
- 하둡 원사
- Hadoop Common
- Hadoop HDFS ( H adoop 디 분배 에프 와 에스 ystem)
- Hadoop MapReduce
# 1) Hadoop 얀 : YARN은“ 와이 과 에 노더 아르 자형 esource 엔 egotiator”는 클라우드의 클러스터 기술을 관리하는 데 사용됩니다. 작업 스케줄링에 사용됩니다.
# 2) Hadoop Common : YARN, MapReduce 및 HDFS와 같은 Hadoop의 다른 기능과 통신하는 데 사용되는 세부 라이브러리 또는 유틸리티입니다.
# 3) Hadoop HDFS : 분산 파일 시스템은 대용량 데이터를 저장하고 처리하기 위해 Hadoop에서 사용됩니다. 또한 클러스터에서 데이터에 액세스하는 데 사용됩니다.
# 4) Hadoop MapReduce : MapReduce는 클러스터에서 데이터 처리를 담당하는 Hadoop의 주요 기능입니다. 작업 스케줄링 및 데이터 처리 모니터링에 사용됩니다.
여기에서는 이러한 기능에 대한 정의를 포함했지만 향후 자습서에서 이러한 모든 기능에 대한 자세한 설명을 볼 수 있습니다.
Hadoop 아키텍처
프레임 워크의 아키텍처를 배우고 프레임 워크에서 사용되는 구성 요소를 살펴 보겠습니다. 이 프레임 워크는 클러스터의 마스터-슬레이브 아키텍처를 따릅니다.
다음은 Hadoop 구성 요소입니다.
- HDFS
- MapReduce
- 실
이것이 Hadoop 아키텍처의 세 가지 중요한 구성 요소입니다. 또한 아키텍처의 일부 용어 또는 개념을 이해하고 작동 방식을 확인해야합니다.
- 이름 노드
- 데이터 노드
- 보조 이름 노드
- 블록
# 1) 이름 노드
Name Node는 HDFS의 마스터 노드입니다. 파일 정보, 디렉토리 구조, 블록 정보, 데이터 노드의 모든 정보 등과 같은 HDFS의 메타 데이터를 포함합니다. 네임 노드는 클라이언트에서 액세스하는 데이터 또는 파일에 대해서만 책임이 있습니다. 모든 트랜잭션 또는 파일 변경 사항을 추적합니다.
주로 두 개의 파일 즉, FsImage 과 EditLogs . Name Node에는 어떤 데이터 노드에 어떤 작업이 있는지, 각 데이터 노드에 얼마나 많은 블록이 있는지, 각 데이터 노드의 하트 비트, 클러스터의 작업 예약 세부 정보 등과 같은 데이터 노드의 모든 세부 정보가 포함 된 JobTracker가 있습니다.
간단히 말해, JobTracker에는 각 데이터 노드의 TaskTracker가 포함되어 있다고 말할 수 있습니다.
# 2) 데이터 노드
데이터 노드는 HDFS의 슬레이브 노드입니다. 데이터 노드는 데이터의 실제 저장 및 처리를 담당합니다. 주요 임무는 작업을 세 개의 블록으로 나누고 다른 데이터 노드에 저장하는 것입니다. 그 후 데이터 처리를 시작합니다.
또한 각 블록의 전체 정보를 담고있는 TaskTracker가 있으며 어떤 블록이 어떤 작업을 담당하는지, 어떤 블록이 작업을 완료했는지 등 데이터를 처리 한 후 Name Node로 정보를 보냅니다. 데이터 노드가 시작될 때마다 모든 정보를 이름 노드로 다시 보냅니다.
# 3) 보조 이름 노드
Secondary Name Node는 내결함성의 경우에 사용됩니다. 이름 노드가 단일 실패 지점이기 때문에 이름 노드가 다운되고 전체 Hadoop 구조가 실패하는 두 가지 시나리오가 있습니다.
(i) 엄청난 양의 데이터를 가지고 있기 때문에 다시 떠오르는 데 걸리는 것보다 어떤 문제로 인해 Name Node가 다시 시작되면 복구하는 데 시간이 걸립니다.
(ii) Name Node 충돌의 경우 모든 HDFS 데이터가 손실되고 Name Node가 단일 실패 지점이므로 다시 복구 할 수 없습니다. 따라서 이러한 문제를 극복하기 위해 Secondary Name Node가 있습니다. 또한 네임 스페이스 이미지와 편집 로그가 네임 노드와 동일하게 포함됩니다.
일정 기간이 지나면 네임 스페이스 이미지를 복사하고 네임 노드에서 편집 로그를 업데이트합니다. 따라서 이름 노드가 실패하는 경우 보조 이름 노드가 그림에 나타나 기본 이름 노드처럼 작동합니다. 이 프로세스로 인해 전체 실패를 방지합니다.
# 4) 블록
블록은 HDFS에서 가장 작은 단위입니다. Hadoop은 많은 양의 파일을 작은 블록으로 나눌 때 처리 할 수 있습니다. 블록은 거대한 파일의 데이터 일 뿐이라고 말할 수 있습니다. 각 블록의 크기는 128MB입니다. 이 블록은 데이터 노드에 저장되고 데이터를 처리합니다.
이제 작동을 이해하기 위해 Hadoop의 아키텍처에 대해 알아 보겠습니다.
Hadoop 분산 파일 시스템 (HDFS)은 Hadoop 클러스터에서 사용되는 파일 시스템입니다. 주로 HDFS는 클러스터에 Hadoop 데이터를 저장하는 데 사용됩니다. HDFS는 일반적으로 순차적 데이터 처리를 위해 노력하고 있습니다. 이미 알고 있듯이 마스터-슬레이브 아키텍처를 기반으로합니다.
클러스터의 모든 메타 데이터는 JobTracker의 Name Node에 저장되고 실제 데이터는 TaskTracker의 HDFS 데이터 노드에 저장됩니다.
MapReduce는 데이터 처리를 담당합니다. 어떤 파일이 처리를 위해 클러스터로 들어올 때마다 첫 번째 데이터 노드는이를 블록으로 나누고 각 블록에는 64MB의 데이터가 포함되며 128MB를 저장할 수 있습니다. 그런 다음 각 블록은 두 번 복제하고 클러스터의 다른 데이터 노드에 저장합니다.
이 모든 정보는 이름 노드로 전송되고 이름 노드는이 정보를 메타 데이터 형식으로 저장합니다. 그런 다음 데이터의 실제 처리는 데이터 노드를 시작하고 이름 노드가이 데이터 노드가 작업중인 정보를 갖도록 3 초마다 이름 노드에 하트 비트를 보냅니다.
데이터 노드 중 누군가가 하트 비트 전송에 실패하면 이름 노드는 다시 다른 데이터 노드에 해당 블록의 복제본을 만들고 처리를 시작합니다.
이 정보 또는 스냅 샷은 FsImage에 저장되며 트랜잭션이 완료되면 로그를 편집하여 새 정보를 병합하고 항상 로그의 새 복사본을 유지합니다.
작업을 먼저 완료 한 블록이 취해지며 데이터 노드는 이름 노드에 정보를 전송하고 이름 노드는 이에 따라 조치를 취합니다.
이 전체 프로세스에서 YARN은 데이터 처리 및 속도에 영향을 미치지 않도록 시스템에 필요한 리소스를 지원하고 제공합니다. 데이터를 처리 한 후 결과는 추가 분석을 위해 HDFS에 저장됩니다.
결론
이 자습서에서는 Hadoop이 무엇인지, RDBMS와 Hadoop의 차이점, 장점, 구성 요소 및 Hadoop 아키텍처를 배웠습니다.
이 프레임 워크는 빅 데이터 처리 및 분석을 담당합니다. MapReduce, YARN 및 HDFS가 클러스터에서 작동하는 것을 확인했습니다.
노트 : 다음은 네임 노드와 데이터 노드의 설정 내용입니다. 보조 이름 노드는 이름 노드와 동일한 구성을 갖습니다.
이름 노드 구성 :
프로세서 : 2GHz에서 실행되는 2 개의 쿼드 코어 CPU
RAM : 128GB
디스크 : 6 x 1TB SATA
네트워크 : 10 기가비트 이더넷
데이터 노드 구성 :
프로세서 : 2GHz에서 실행되는 2 개의 쿼드 코어 CPU
RAM : 64GB
디스크 : 12-24 x 1TB SATA
네트워크 : 10 기가비트 이더넷
=> 여기에서 빅 데이터 초보자 가이드를 살펴보십시오.