Apache Spark는 SQL, 스트리밍, 머신러닝 및 그래프 처리를 위한 기본 제공 모듈이 있는 대규모 데이터 처리용 통합 분석 엔진입니다. Spark는 클라우드의 Apache Hadoop, Kubernetes에서 자체적으로 실행될 수 있으며 다양한 데이터 소스에 대해 실행될 수 있습니다. Java, Scala, Python, R의 풍부한 API를 제공하므로 다양한 개발자와 데이터 과학자가 이용할 수 있습니다. Python API인 PySpark는 데이터 조작을 위해 Pandas와 같은 인기 라이브러리와도 원활하게 통합됩니다. Google Cloud에서 Apache Spark는 서버리스 옵션, Lightning Engine(프리뷰 버전)과 같은 획기적인 성능 개선, 통합 데이터 및 AI 플랫폼과의 긴밀한 통합을 통해 한 단계 더 발전합니다.
한 가지 일반적인 질문은 Apache Spark와 Apache Hadoop을 언제 사용하느냐는 것입니다. 이 둘은 모두 오늘날 시장에서 가장 눈에 띄는 분산 시스템에 속하며, 유사성 높은 Apache 최상위 프로젝트로서 함께 사용되는 경우가 많습니다. Hadoop은 주로 디스크 사용량이 많고 맵리듀스 패러다임을 사용하는 작업에 사용됩니다. Spark는 더 유연하지만 대체로 더 많은 비용이 드는 인메모리 처리 아키텍처입니다. 각 기능을 이해하고 있으면 언제 어떤 것을 구현할지 결정하는 데 도움이 됩니다.
Google Cloud를 통해 보다 단순하고 통합된 비용 효율적인 방식으로 Apache Spark 워크로드를 실행할 수 있는 방법을 알아보세요. 제로옵스 개발을 위해 Apache Spark용 Google Cloud 서버리스를 활용하거나 관리형 Spark 클러스터에 Dataproc을 사용할 수 있습니다.
Spark 생태계에는 다음과 같은 5가지 주요 구성요소가 포함됩니다.
Google Cloud는 이러한 구성요소 전반에 걸쳐 최적화된 환경을 제공합니다. 예를 들어 Lightning Engine은 Spark 및 DataFrame 성능을 향상시키고, Apache Spark용 Google Cloud 서버리스는 배포 및 관리를 간소화하며, Gemini는 BigQuery Studio 및 Vertex AI Workbench와 같은 노트북 환경에서 개발자 생산성을 높입니다.
속도
Spark의 인메모리 처리 및 DAG 스케줄러는 특히 반복적인 태스크의 경우 Hadoop 맵리듀스보다 더 빠른 워크로드를 지원합니다. Google Cloud는 최적화된 인프라와 Lightning Engine으로 이러한 속도를 높입니다.
사용 편의성
Spark의 상위 수준 연산자는 병렬 앱 빌드를 간소화합니다. Scala, Python, R, SQL과 함께 대화형으로 사용하면 빠른 개발이 가능합니다. Google Cloud는 Gemini와 통합된 서버리스 옵션과 노트북을 제공하여 사용 편의성을 높입니다.
확장성
Spark는 수평적 확장성을 제공하여 클러스터 노드에 작업을 분산하여 방대한 데이터를 처리합니다. Google Cloud는 서버리스 자동 확장과 유연한 Dataproc 클러스터로 확장을 간소화합니다.
보편성
Spark는 SQL, DataFrame, 머신러닝용 MLlib, GraphX, Spark Streaming을 비롯한 다양한 라이브러리를 지원합니다. 이러한 라이브러리를 동일한 애플리케이션에서 원활하게 결합할 수 있습니다.
오픈소스 프레임워크 혁신
Spark는 신속한 혁신과 문제 해결을 위해 오픈소스 커뮤니티의 힘을 활용하여 개발 속도와 TTM(time to market)을 단축합니다. Google Cloud는 이러한 개방적인 정신을 수용하여 표준 Apache Spark를 제공하는 동시에 기능을 향상시키고 있습니다.
Apache Spark는 Hadoop 클러스터 또는 독립 실행형 모드로 배포할 수 있는 빠른 범용 클러스터 컴퓨팅 엔진입니다. Spark를 사용하면 프로그래머는 개발자, 데이터 과학자, 통계 경험이 있는 고급 비즈니스 담당자가 액세스할 수 있도록 자바, Scala, Python, R, SQL로 애플리케이션을 빠르게 작성할 수 있습니다. Spark SQL을 사용하면 사용자가 모든 데이터 소스에 연결하고 이를 SQL 클라이언트에서 사용할 수 있는 테이블로 표현할 수 있습니다. 또한 Spark에서는 대화형 머신러닝 알고리즘이 쉽게 구현됩니다.
Apache Impala, Apache Hive, Apache Drill 같은 SQL 전용 엔진을 사용하는 사용자는 여러 데이터베이스에 저장된 데이터를 쿼리할 때 SQL 또는 SQL 유사 언어만 사용할 수 있습니다. 이는 Spark에 비해 프레임워크가 작다는 것을 의미합니다. 하지만 Google Cloud에서는 선택지가 다양합니다. BigQuery는 강력한 SQL 기능을 제공하고, Apache Spark용 Google Cloud 서버리스와 Spark 및 Hadoop 관리형 서비스용 Dataproc을 사용하면 BigLake Metastore 및 개방형 형식을 통해 동일한 데이터에서 Spark의 다목적 기능을 사용할 수 있습니다.
많은 기업이 Spark를 사용하여 구조화 또는 구조화되지 않은 대량의 실시간 또는 아카이브 데이터를 처리 및 분석하는 까다롭고 계산 집약적인 작업을 간소화하고 있습니다. 또한 사용자는 Spark를 사용하여 머신러닝 및 그래프 알고리즘 등의 복잡한 관련 기능을 원활하게 통합할 수 있습니다. 일반적인 애플리케이션은 다음과 같습니다.
데이터 엔지니어는 더 많은 언어로 프로그래밍할 수 있는 옵션을 갖춘 Spark를 사용하여 데이터 처리 작업을 코딩하고 빌드합니다. Google Cloud에서 데이터 엔지니어는 제로옵스 ETL/ELT 파이프라인을 위해 Apache Spark용 Google Cloud 서버리스를 활용하거나 관리형 클러스터 제어를 위해 Dataproc을 활용할 수 있으며, 이는 모두 거버넌스를 위해 BigQuery 및 Dataplex 범용 카탈로그와 같은 서비스와 통합됩니다.
데이터 과학자는 GPU와 Spark를 함께 사용하여 보다 뛰어난 분석 및 ML 환경을 이용할 수 있습니다. 익숙한 언어로 더 많은 양의 데이터를 더 빠르게 처리할 수 있으므로 혁신을 앞당길 수 있습니다. Google Cloud는 Spark에 대한 강력한 GPU 지원과 Vertex AI와의 원활한 통합을 제공하므로 데이터 과학자가 모델을 더 빠르게 빌드하고 배포할 수 있습니다. BigQuery Studio, Vertex AI Workbench와 같은 다양한 노트북 환경을 활용하거나 Jupyter, VS Code와 같은 선호하는 IDE를 연결할 수 있습니다. Gemini와 결합된 유연한 개발 환경은 초기 탐색 단계부터 프로덕션 배포에 이르는 워크플로를 가속화하는 데 도움이 됩니다.