Hadoop 대 Spark: 일대일 비교
게시 됨: 2022-11-02Apache 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의 주요 구성 요소는 다음과 같습니다.

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

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과 Spark 중에서 선택해야 합니다. 그러나 대부분의 경우 이 두 프레임워크가 매우 잘 공존하고 함께 작동할 수 있으므로 선택이 불필요할 수 있습니다. 실제로 Spark를 개발한 주된 이유는 Hadoop을 대체하기 보다는 개선하기 위함이었습니다.
이전 섹션에서 보았듯이 Spark는 HDFS 스토리지 시스템을 사용하여 Hadoop과 통합할 수 있습니다. 실제로 둘 다 분산 환경 내에서 더 빠른 데이터 처리를 수행합니다. 마찬가지로 Hadoop에 데이터를 할당하고 Spark를 사용하여 처리하거나 Hadoop MapReduce 내에서 작업을 실행할 수 있습니다.
결론
하둡 또는 스파크? 프레임워크를 선택하기 전에 아키텍처를 고려해야 하며 이를 구성하는 기술이 달성하고자 하는 목표와 일치해야 합니다. 또한 Spark는 Hadoop 에코시스템과 완벽하게 호환되며 Hadoop 분산 파일 시스템 및 Apache Hive와 원활하게 작동합니다.
몇 가지 빅 데이터 도구를 탐색할 수도 있습니다.