주요 컨텐츠로 이동

하둡 클러스터

Databricks 무료로 시작하기

하둡 클러스터란 무엇입니까?

Apache Hadoop은 오픈 소스, Java 기반 소프트웨어 프레임워크이자 병렬식 데이터 처리 엔진입니다. 하둡을 이용하면 빅데이터 분석 처리 작업을 작은 크기의 작업으로 분해하여 알고리즘(예를 들어 MapReduce 알고리즘 같은)을 사용하여 병렬식으로 수행할 수 있고, 그런 다음 하둡 클러스터에 배포하면 됩니다. 하둡 클러스터란 네트워크로 서로 연결된 일련의 컴퓨터('노드'라고 함)를 말합니다. 이렇게 한데 모아서 빅데이터 세트에서 이런 종류의 병렬 연산을 수행하도록 한 것입니다. 하둡 클러스터는 여타 컴퓨터 클러스터와는 달리 대량의 구조적, 비구조적 데이터를 분산형 컴퓨팅 환경에 저장하고 분석하는 데 특화되어 있습니다. 이외에 하둡 에코시스템은 고유한 구조와 아키텍처를 가지고 있어 다른 컴퓨터 클러스터와 다릅니다. 하둡 클러스터는 서로 연결된 마스터, 슬레이브 노드 네트워크로 구성되어 있습니다. 노드는 고가용성, 저가 상용 하드웨어를 활용합니다. 선형적으로 확장하여 볼륨 수요에 따라 신속하게 노드를 더하거나 뺄 수 있다는 점 때문에 크기가 무척 다양한 데이터 세트를 다루는 빅데이터 분석 작업에 적합합니다.

하둡 클러스터 아키텍처

하둡 클러스터는 하둡 분산형 파일 시스템 전체에 걸쳐 다양한 작업을 오케스트레이션, 실행하는 여러 마스터 노드와 작업자 노드로 구성된 네트워크로 이루어져 있습니다. 마스터 노드는 보통 NameNode, Secondary NameNode와 JobTracker 등 고품질 하드웨어를 활용하며, 각각이 별도의 시스템에서 실행됩니다. 작업자 노드는 가상 머신으로 구성되며 상용 하드웨어에서 DataNode와 TaskTracker를 둘 다 실행하고 마스터 노드의 지시에 따라 실제로 작업을 저장하고 처리하는 실무를 담당합니다. 시스템을 이루는 마지막 부분을 클라이언트 노드라고 하는데, 이 노드는 데이터를 로드하고 결과를 가져오는 역할을 담당합니다.
하둡 클러스터는 마스터 노드, 작업자 노드와 클라이언트 노드라는 세 가지 서로 다른 노드 유형으로 구성됩니다.

  • 마스터 노드는 MapReduce를 사용해 데이터에서 병렬식 연산을 실행하는 등 데이터를 HDFS에 저장하고 주요 작업을 감독합니다.
  • 작업자 노드는 하둡 클러스터 내 대부분의 가상 머신으로 구성되어 데이터를 저장하고 연산을 수행하는 작업을 담당합니다. 각각의 작업자 노드는 DataNode와 TaskTracker라는 서비스를 실행하는데, 이는 마스터 노드에서 지침을 받는 데 쓰입니다.
  • 클라이언트 노드는 데이터를 클러스터에 노드하는 역할을 맡습니다. 클라이언트 노드는 우선 MapReduce 작업을 제출하여 데이터를 어떻게 처리해야 하는지 설명하고, 그런 다음 처리가 끝나면 결과를 가져옵니다.

하둡의 클러스터 크기란 무엇입니까?

하둡 클러스터 크기는 하둡 워크로드를 실행하기 위한 스토리지와 컴퓨팅 역량을 정의하는 일련의 지표를 말합니다. 구체적으로는 다음과 같은 요소를 뜻합니다.

  • 노드 수: 마스터 노드 수, 에지 노드 수, 작업자 노드 수.
  • 각 유형의 구성: 노드당 코어 수, RAM과 디스크 볼륨.

하둡 클러스터의 장점

  • 하둡 클러스터를 사용하면 대다수의 빅데이터 분석 작업에서 처리 속도를 높이는 데 도움이 됩니다. 크기가 큰 연산 작업을 작은 작업으로 분해하여 병렬식으로, 분산된 형태로 실행할 수 있게 해주기 때문입니다.
  • 하둡 클러스터는 확장하기 쉽고 금세 노드를 추가하여 처리량을 늘릴 수 있으며, 데이터 블록이 늘어나는 상황에 직면해도 처리 속도는 일정하게 유지합니다.
  • 하둡 클러스터는 저가, 고가용성 상용 하드웨어를 사용하기 때문에 설치와 유지도 비교적 쉽고 저렴한 편입니다.
  • 하둡 클러스터는 분산형 파일 시스템 전체에 걸쳐 데이터 세트를 복제하여 데이터 손실과 클러스터 오류가 발생해도 복원력을 확보합니다.
  • 하둡 클러스터를 이용하면 여러 가지 다양한 소스 시스템과 데이터 형식에서 얻은 데이터를 통합하여 활용할 수 있습니다.
  • 하둡은 평가 목적으로 노드 하나만 설치해 배포할 수도 있습니다.

하둡 클러스터의 문제점

  • 작은 파일과 관련한 문제점 - 하둡은 대량의 작은 파일(하둡 블록 크기인 128MB나 기본값인 256MB보다 작은 것)을 다룰 때 특히 고전합니다. 애초에 빅데이터를 확장할 수 있는 방식으로 지원하게 고안한 것이 아닙니다. 그보다 하둡은 큰 파일이 소량 있을 때 효과가 좋습니다.  궁극적으로, 작은 파일 볼륨을 늘리면 시스템 네임스페이스를 저장하는 Namenode에 과부하가 걸립니다.
  • 처리 오버헤드 부담 - 하둡에서는 특히 대량의 데이터를 처리할 때 읽기, 쓰기 작업에 드는 비용이 순식간에 매우 비싸질 수 있습니다. 이런 사태의 근본적인 원인은 하둡이 메모리 내 처리를 할 수 없고 그 대신 디스크를 통해 데이터를 읽고 쓰기 때문입니다.
  • 배치 처리만 지원됨 - 하둡은 소량의 큰 파일을 배치 형태로 처리하도록 설계되었습니다. 여기서 데이터의 수집, 저장 방식 이야기가 다시 거론되는데, 수집과 저장을 모두 마친 후에야 처리를 시작할 수 있다는 뜻입니다. 궁극적으로 이것은 스트리밍 데이터가 지원되지 않는다는 뜻이고, 짧은 레이턴시로 실시간 처리를 할 수 없다는 뜻이기도 합니다.
  • 반복 처리 - 하둡의 데이터 흐름 구조는 순차적인 단계로 설정되어 있으므로 반복 처리하거나 ML에 사용하기는 불가능합니다.

추가 자료

용어집으로 돌아가기