하둡이란 무엇입니까? 소개, Archi구조, 생태계, 구성요소
하둡이란?
Apache Hadoop은 분산 컴퓨팅 환경에서 실행되는 데이터 처리 애플리케이션을 개발하는 데 사용되는 오픈 소스 소프트웨어 프레임워크입니다.
HADOOP를 사용하여 구축된 애플리케이션은 상용 컴퓨터 클러스터에 분산된 대규모 데이터 세트에서 실행됩니다. 상용 컴퓨터는 저렴하고 널리 이용 가능합니다. 이는 주로 저렴한 비용으로 더 큰 컴퓨팅 파워를 달성하는 데 유용합니다.
개인용 컴퓨터 시스템의 로컬 파일 시스템에 상주하는 데이터와 유사하게 Hadoop에서는 데이터가 분산 파일 시스템에 상주합니다. Hadoop 분산 파일 시스템. 처리 모델은 다음을 기반으로 합니다. '데이터 지역성' 계산 논리가 데이터를 포함하는 클러스터 노드(서버)로 전송되는 개념입니다. 이 계산 논리는 아무것도 아니며, 다음과 같은 고급 언어로 작성된 프로그램의 컴파일된 버전입니다. Java. 이러한 프로그램은 다음에 저장된 데이터를 처리합니다. Hadoop HDFS.
당신은 알고 계십니까? 컴퓨터 클러스터는 서로 연결되어 단일 시스템으로 작동하는 여러 개의 처리 장치(저장 디스크 + 프로세서)로 구성됩니다.
Hadoop 생태계 및 구성 요소
아래 다이어그램은 Hadoop 생태계의 다양한 구성 요소를 보여줍니다.
Apache Hadoop은 두 개의 하위 프로젝트로 구성됩니다.
- Hadoop 맵리듀스: MapReduce는 Hadoop에서 실행되는 애플리케이션을 작성하기 위한 계산 모델 및 소프트웨어 프레임워크입니다. 이러한 MapReduce 프로그램은 대규모 계산 노드 클러스터에서 병렬로 엄청난 양의 데이터를 처리할 수 있습니다.
- HDFS (하둡 분산 파일 시스템): HDFS는 Hadoop 애플리케이션의 저장 부분을 담당합니다. MapReduce 애플리케이션은 HDFS에서 데이터를 사용합니다. HDFS는 데이터 블록의 여러 복제본을 생성하여 클러스터의 컴퓨트 노드에 분산합니다. 이 분산은 안정적이고 매우 빠른 계산을 가능하게 합니다.
Hadoop은 MapReduce 및 해당 분산 파일 시스템인 HDFS로 가장 잘 알려져 있지만, 이 용어는 분산 컴퓨팅 및 대규모 데이터 처리에 속하는 관련 프로젝트 제품군에도 사용됩니다. 기타 Hadoop 관련 프로젝트 아파치 포함하다 Hive, HBase, Mahout, Sqoop, Flume 및 ZooKeeper.
하둡 Archi강의
Hadoop에는 마스터-슬레이브가 있습니다. Archi이를 이용한 데이터 저장 및 분산 데이터 처리 강의 MapReduce 및 HDFS 방법.
네임노드:
NameNode는 네임스페이스에서 사용되는 모든 파일과 디렉터리를 나타냅니다.
데이터노드:
DataNode를 사용하면 HDFS 노드의 상태를 관리하고 블록과 상호 작용할 수 있습니다.
마스터노드:
마스터 노드를 사용하면 Hadoop MapReduce를 사용하여 데이터의 병렬 처리를 수행할 수 있습니다.
슬레이브 노드:
슬레이브 노드는 Hadoop 클러스터의 추가 머신으로, 복잡한 계산을 수행하기 위해 데이터를 저장할 수 있습니다. 게다가 모든 슬레이브 노드에는 Task Tracker와 DataNode가 함께 제공됩니다. 이를 통해 프로세스를 각각 NameNode와 Job Tracker와 동기화할 수 있습니다.
Hadoop에서는 마스터 또는 슬레이브 시스템을 클라우드 또는 온프레미스에 설정할 수 있습니다.
'하둡'의 특징
• 빅데이터 분석에 적합
빅데이터는 본질적으로 분산되고 비구조화되는 경향이 있으므로 HADOOP 클러스터는 빅데이터 분석에 가장 적합합니다. 컴퓨팅 노드로 흐르는 것은 처리 로직(실제 데이터가 아님)이므로 네트워크 대역폭 소모가 적습니다. 이 개념을 데이터 지역성 개념 이는 Hadoop 기반 애플리케이션의 효율성을 높이는 데 도움이 됩니다.
• 확장성
HADOOP 클러스터는 추가 클러스터 노드를 추가하여 쉽게 어느 정도까지 확장할 수 있으므로 빅데이터의 성장을 허용합니다. 또한 확장에는 애플리케이션 로직을 수정할 필요가 없습니다.
• 결함 허용
HADOOP 생태계에는 입력 데이터를 다른 클러스터 노드에 복제하는 조항이 있습니다. 이런 방식으로 클러스터 노드에 장애가 발생하더라도 다른 클러스터 노드에 저장된 데이터를 사용하여 데이터 처리를 계속 진행할 수 있습니다.
Hadoop의 네트워크 토폴로지
네트워크의 토폴로지(배치)는 Hadoop 클러스터의 크기가 커질 때 Hadoop 클러스터의 성능에 영향을 미칩니다. 성능 외에도 고가용성과 장애 처리에 대해서도 신경 써야 합니다. 이 Hadoop을 달성하기 위해 클러스터 형성은 네트워크 토폴로지를 활용합니다.
일반적으로 네트워크 대역폭은 네트워크를 형성하는 데 고려해야 할 중요한 요소입니다. 그러나 대역폭을 측정하는 것이 어려울 수 있으므로 Hadoop에서 네트워크는 트리로 표현되고 이 트리의 노드 간 거리(홉 수)는 Hadoop 클러스터 형성에서 중요한 요소로 간주됩니다. 여기서 두 노드 간 거리는 가장 가까운 공통 조상까지의 거리의 합과 같습니다.
Hadoop 클러스터는 데이터 센터, 랙, 실제로 작업을 실행하는 노드로 구성됩니다. 여기서 데이터 센터는 랙으로 구성되고 랙은 노드로 구성됩니다. 프로세스에 사용 가능한 네트워크 대역폭은 프로세스의 위치에 따라 다릅니다. 즉, 사용 가능한 대역폭은 우리가 멀어질수록 줄어듭니다.
- 동일한 노드의 프로세스
- 동일한 랙에 있는 다른 노드
- 동일한 데이터 센터의 서로 다른 랙에 있는 노드
- 다양한 데이터 센터의 노드