Hadoop 대 Spark: 일대일 비교

게시 됨: 2022-11-02

Apache Software Foundation에서 개발한 Hadoop과 Spark는 빅 데이터 아키텍처용으로 널리 사용되는 오픈 소스 프레임워크입니다.

우리는 현재 빅 데이터 현상의 중심에 있으며 기업은 더 이상 의사 결정에 데이터가 미치는 영향을 무시할 수 없습니다.

참고로 빅데이터로 간주되는 데이터는 속도, 속도, 다양성의 세 가지 기준을 충족합니다. 그러나 기존 시스템과 기술로는 빅데이터를 처리할 수 없습니다.

Apache Software Foundation은 이 문제를 극복하기 위해 가장 많이 사용되는 솔루션인 Hadoop 및 Spark를 제안했습니다.

그러나 빅 데이터 처리를 처음 접하는 사람들은 이 두 가지 기술을 이해하는 데 어려움을 겪습니다. 모든 의심을 없애기 위해 이 기사에서 Hadoop과 Spark의 주요 차이점과 언제 둘 중 하나를 선택하거나 함께 사용해야 하는지 알아보십시오.

하둡

Hadoop은 빅 데이터 처리를 위한 생태계를 형성하는 여러 모듈로 구성된 소프트웨어 유틸리티입니다. 이 처리를 위해 Hadoop에서 사용하는 원칙은 데이터를 병렬로 처리하기 위한 분산 분산입니다.

유튜브 영상

Hadoop의 분산 스토리지 시스템 설정은 여러 대의 일반 컴퓨터로 구성되어 여러 노드의 클러스터를 형성합니다. 이 시스템을 채택하면 Hadoop이 여러 작업을 동시에 빠르고 효율적으로 수행하여 방대한 양의 사용 가능한 데이터를 효율적으로 처리할 수 있습니다.

Hadoop으로 처리되는 데이터는 다양한 형태를 취할 수 있습니다. 그것들은 Excel 테이블이나 기존 DBMS의 테이블처럼 구성될 수 있습니다. 이 데이터는 JSON 또는 XML 파일과 같은 반구조화된 방식으로 표시될 수도 있습니다. Hadoop은 이미지, 비디오 또는 오디오 파일과 같은 비정형 데이터도 지원합니다.

주요 구성품

하둡
출처: 위키미디어

Hadoop의 주요 구성 요소는 다음과 같습니다.

  • HDFS 또는 Hadoop 분산 파일 시스템은 Hadoop에서 분산 데이터 저장을 수행하는 데 사용하는 시스템입니다. 클러스터 메타 데이터를 포함하는 마스터 노드와 데이터 자체가 저장되는 여러 슬레이브 노드로 구성됩니다.
  • MapReduce 는 이 분산 데이터를 처리하는 데 사용되는 알고리즘 모델입니다. 이 디자인 패턴은 Java, R, Scala, Go, JavaScript 또는 Python과 같은 여러 프로그래밍 언어를 사용하여 구현할 수 있습니다. 각 노드 내에서 병렬로 실행됩니다.
  • 여러 유틸리티와 라이브러리가 다른 Hadoop 구성 요소를 지원하는 Hadoop Common ;
  • YARN 은 Hadoop 클러스터의 리소스와 각 노드에서 수행하는 워크로드를 관리하기 위한 오케스트레이션 도구입니다. 또한 이 프레임워크의 버전 2.0부터 MapReduce의 구현을 지원합니다.

아파치 스파크

아파치-스파크

Apache Spark는 컴퓨터 과학자 Matei Zaharia가 2009년 박사 과정의 일부로 처음 만든 오픈 소스 프레임워크입니다. 그는 2010년 Apache Software Foundation에 합류했습니다.

Spark는 여러 노드에 분산 방식으로 분산된 계산 및 데이터 처리 엔진입니다. Spark의 주요 특징은 메모리 내 처리를 수행한다는 것입니다. 즉, RAM을 사용하여 클러스터에 분산된 대용량 데이터를 캐시하고 처리합니다. 더 높은 성능과 훨씬 더 빠른 처리 속도를 제공합니다.

유튜브 영상

Spark는 일괄 처리, 실제 스트림 처리, 기계 학습 및 그래프 계산을 포함한 여러 작업을 지원합니다. HDFS, RDBMS 또는 NoSQL 데이터베이스와 같은 여러 시스템의 데이터도 처리할 수 있습니다. Spark의 구현은 Scala나 Python과 같은 여러 언어로 수행할 수 있습니다.

주요 구성 요소

Apache Spark의 주요 구성 요소는 다음과 같습니다.

아파치 스파크가 뭐야.b3a3099296936df595d9a7d3610f1a77ff0749df
출처: AWS
  • Spark Core 는 전체 플랫폼의 일반 엔진입니다. 작업 계획 및 배포, 입출력 작업 조정 또는 고장 복구를 담당합니다.
  • Spark SQL 은 정형 및 반정형 데이터를 지원하는 RDD 스키마를 제공하는 구성 요소입니다. 특히, SQL을 실행하거나 SQL 엔진에 대한 액세스를 제공하여 구조화된 유형 데이터의 수집 및 처리를 최적화할 수 있습니다.
  • 스트리밍 데이터 분석을 허용하는 Spark Streaming . Spark Streaming은 Flume, Kinesis 또는 Kafka와 같은 다양한 소스의 데이터를 지원합니다.
  • 머신 러닝을 위한 Apache Spark의 내장 라이브러리인 MLib . 여러 기계 학습 알고리즘과 기계 학습 파이프라인을 생성하는 여러 도구를 제공합니다.
  • GraphX 는 분산 아키텍처 내에서 모델링, 계산 및 그래프 분석을 수행하기 위한 API 세트를 결합합니다.

하둡 대 스파크: 차이점

Hadoop-vs-Spark-1

Spark는 빅 데이터 계산 및 데이터 처리 엔진입니다. 따라서 이론적으로 Hadoop MapReduce와 약간 비슷하며 메모리 내에서 실행되기 때문에 훨씬 빠릅니다. 그렇다면 Hadoop과 Spark의 차이점은 무엇입니까? 살펴보겠습니다.

  • Spark는 특히 인메모리 처리 덕분에 훨씬 더 효율적이며 Hadoop은 일괄 처리로 진행됩니다.
  • Spark는 성능을 유지하기 위해 상당한 양의 RAM이 필요하기 때문에 비용 면에서 훨씬 더 비쌉니다. 반면에 Hadoop은 데이터 처리를 위해 일반 기계에만 의존합니다.
  • Hadoop은 일괄 처리에 더 적합하고 Spark는 스트리밍 데이터 또는 비정형 데이터 스트림을 처리할 때 가장 적합합니다.
  • Hadoop은 지속적으로 데이터를 복제하므로 내결함성이 더 높은 반면 Spark는 자체적으로 HDFS에 의존하는 탄력적인 분산 데이터 세트(RDD)를 사용합니다.
  • 기존 시스템이 더 이상 충분하지 않은 경우에만 다른 시스템을 추가하면 되므로 Hadoop은 확장성이 더 뛰어납니다. Spark는 확장을 위해 HDFS와 같은 다른 프레임워크의 시스템에 의존합니다.
요인 하둡 불꽃
처리 일괄 처리 메모리 내 처리
파일 관리 HDFS Hadoop의 HDFS 사용
속도 빠른 10~1000배 더 빠름
언어 지원 자바, 파이썬, 스칼라, R, 고, 자바스크립트 자바, 파이썬, 스칼라, R
결함 허용 더 관대하다 덜 관용
비용 저렴 더 비싼
확장성 확장성 향상 덜 확장성

하둡이 좋다

처리 속도가 중요하지 않은 경우 Hadoop이 좋은 솔루션입니다. 예를 들어 데이터 처리를 밤새 수행할 수 있다면 Hadoop의 MapReduce 사용을 고려하는 것이 좋습니다.

Hadoop의 HDFS는 조직에 데이터를 저장하고 처리하는 더 나은 방법을 제공하므로 Hadoop을 사용하면 비교적 처리하기 어려운 데이터 웨어하우스에서 대용량 데이터 세트를 오프로드할 수 있습니다.

스파크의 장점:

Spark의 탄력적인 분산 데이터 세트(RDD)는 여러 메모리 내 맵 작업을 허용하는 반면 Hadoop MapReduce는 중간 결과를 디스크에 기록해야 하므로 실시간 대화형 데이터 분석을 수행하려는 경우 Spark가 선호되는 옵션입니다.

Cassandra 또는 MongoDB와 같은 분산 데이터베이스에 대한 Spark의 메모리 내 처리 및 지원은 데이터 마이그레이션 및 삽입을 위한 탁월한 솔루션입니다. 데이터가 소스 데이터베이스에서 검색되어 다른 대상 시스템으로 전송될 때입니다.

Hadoop과 Spark를 함께 사용

스파크 및 Hadoop

종종 Hadoop과 Spark 중에서 선택해야 합니다. 그러나 대부분의 경우 이 두 프레임워크가 매우 잘 공존하고 함께 작동할 수 있으므로 선택이 불필요할 수 있습니다. 실제로 Spark를 개발한 주된 이유는 Hadoop을 대체하기 보다는 개선하기 위함이었습니다.

이전 섹션에서 보았듯이 Spark는 HDFS 스토리지 시스템을 사용하여 Hadoop과 통합할 수 있습니다. 실제로 둘 다 분산 환경 내에서 더 빠른 데이터 처리를 수행합니다. 마찬가지로 Hadoop에 데이터를 할당하고 Spark를 사용하여 처리하거나 Hadoop MapReduce 내에서 작업을 실행할 수 있습니다.

결론

하둡 또는 스파크? 프레임워크를 선택하기 전에 아키텍처를 고려해야 하며 이를 구성하는 기술이 달성하고자 하는 목표와 일치해야 합니다. 또한 Spark는 Hadoop 에코시스템과 완벽하게 호환되며 Hadoop 분산 파일 시스템 및 Apache Hive와 원활하게 작동합니다.

몇 가지 빅 데이터 도구를 탐색할 수도 있습니다.