Hadoop 핵심 아키텍처 HDFS에 대한 자세한 설명

Hadoop 입문 학습 단계에서 많은 학생들은 Hadoop 프레임워크에서 HDFS가 분산 스토리지 지원을 제공한다는 것을 알고 있으므로 HDFS를 종종 오해합니다. HDFS는 데이터베이스입니까? HDFS는 어떤 종류의 데이터베이스입니까? 사실 HDFS는 데이터베이스가 아니며 공식 정의는 분산 파일 시스템이라고 합니다. 어떻게 이해해야 할까요?

1. 배경 및 정의

HDFS: 파일을 저장하는 데 사용되는 분산 파일 시스템의 주요 기능은 배포입니다. 즉, 많은 서버가 기능을 달성하기 위해 함께 작동하며 클러스터의 각 서버는 고유한 역할을 합니다.

데이터의 양이 점점 많아질수록 운영체제가 모든 데이터를 저장할 수 없어 운영체제가 관리하는 더 많은 디스크에 할당하게 되지만 관리와 유지보수가 매우 불편해 여러 디스크를 관리할 수 있는 시스템이 시급하다. 시스템의 파일은 분산 관리 시스템이며 HDFS는 그 중 하나입니다.

HDFS의 사용은 한 번 쓰고 여러 번 읽는 시나리오에 적합하며 파일의 직접 수정을 지원하지 않고 파일 끝에 추가만 지원합니다.

HDFS는 스트리밍 데이터 액세스 방법을 채택합니다. 이 기능은 흐르는 물처럼 데이터가 한 번에 오지 않고 비트 단위로 "흐르고" 데이터가 비트 단위로 처리된다는 것입니다. 모든 데이터가 도착한 후 데이터를 처리하면 지연이 매우 커지고 메모리를 많이 소모하게 됩니다.

2. 데이터를 저장하기 위해 HDFS를 선택하는 이유

HDFS는 다음과 같은 장점이 있기 때문에 데이터를 저장하기 위해 HDFS를 선택합니다.

높은 내결함성: 데이터가 자동으로 여러 복사본에 저장되고 복사본이 손실된 후 자동으로 복구됩니다.

일괄 처리에 적합: 모바일 컴퓨팅 및 즉시 데이터. 데이터 위치는 컴퓨팅 프레임워크에 노출됩니다.

빅 데이터 처리에 적합: GB, TB, PB 수준 데이터 설정. 100만개 이상의 파일 수입니다. 10,000+ 노드 규모.

스트리밍 파일 액세스: 한 번 쓰고 여러 번 읽습니다. 데이터 일관성을 보장합니다.

저렴한 기계에 구축 가능: 여러 사본으로 안정성을 향상시킵니다. 내결함성 및 복구 메커니즘을 제공합니다.

3. HDFS의 단점

저지연 액세스에 적합하지 않음: 사용자에게 비교적 짧은 시간이 필요한 일부 저지연 애플리케이션 요청을 처리하려는 경우 HDFS는 적합하지 않습니다. HDFS는 주로 높은 데이터 처리량을 달성하기 위해 대규모 데이터 세트 분석 작업을 처리하도록 설계되었으며, 이는 절충으로 높은 대기 시간이 필요할 수 있습니다.

작은 파일을 효율적으로 저장하지 못함: nameNode는 파일 시스템의 메타 데이터를 메모리에 저장하기 때문에 파일 시스템이 저장할 수 있는 파일 수는 NameNode의 메모리 크기에 따라 결정됩니다. 일반적으로 각 파일, 폴더 및 블록 약 150바이트의 공간을 차지해야 하므로 100만 개의 파일이 있고 각각의 블록을 차지하는 경우 최소 300MB의 메모리가 필요합니다. 현재 수백만 개의 파일이 여전히 실행 가능합니다. 10억에서 현재 하드웨어로는 달성할 수 없습니다. 수준. 또 다른 문제는 맵 태스크의 수가 분할에 의해 결정되기 때문에 MR을 사용하여 많은 수의 작은 파일을 처리하는 경우 너무 많은 맵 태스크가 생성되고 스레드 관리 오버헤드가 작업 시간을 증가시킨다는 것입니다. 예를 들어, 10000M 파일을 처리하기 위해 각 분할이 1M이면 10000 maptask가 있고 스레드 오버헤드가 많이 발생합니다. 스레드 관리 오버헤드가 훨씬 줄어듭니다.

파일의 다중 사용자 쓰기 및 임의 수정을 지원하지 않습니다. 파일에는 하나의 쓰기 스레드만 있고 다중 스레드는 동시에 읽고 쓸 수 없으며 쓰기 작업은 파일 끝에서만 완료할 수 있으며 파일 추가만 가능 지원되며 수정은 지원되지 않습니다.

관련 문서

더 많은 특별 제안 살펴보기

  1. Short Message Service(SMS) & Mail Service

    최저 USD 1.99부터 시작하는 10,000개의 이메일 패키지

wave
phone 문의하기