[스파크 완벽 가이드] 4. 구조적 API 개요
·
Data Engineering
구조적 API: 데이터 흐름을 정의하는 기본 추상화 개념 비정형 로그 파일, 반정형 CSV 파일, 정형적인 파케이 파일까지 다양한 유형의 데이터를 처리 세가지 분산 컬렉션 API 존재: Dataset, DataFrame, SQL 테이블과 뷰 배치와 스트리밍 처리에서 사용 가능. 특히, 배치, 스트리밍 작업은 서로 변환할 수 있음 4.1 DataFrame과 Dataset 스파크가 가진 두 가지 구조화된 컬렉션 개념 row와 column을 가지는 분산 테이블 형태의 컬렉션 각 column의 row의 수는 동일함, 컬렉션의 모든 row는 같은 데이터 타입 정보를 가짐 결과를 생성하기 위해 어떤 데이터에 어떤 연산을 적용해야 하는지 정의하는 지연 연산의 실행 계획 DataFrame과 Dataset을 구체적으로 ..
[스파크 완벽 가이드] 3. 스파크 기능
·
Data Engineering
1. 구조적 API: dataset, dataframe, sql 2. 저수준 API: rdd, 분산형 변수 3. 구조적 스트링, 고급분석, 라이브러리 및 에코시스템 3.1 운영용 애플리케이션 실행 spark-submit 명령 내가 개발한 프로그램을 운영용 애플리케이션으로 전환 애플리케이션 코드를 클러스터에 전송해 실행시키는 역할 spark-submit \ > --class org.apache.spark.examples.SparkPi \ > --master local \ > ./examples/jars/spark-examples_2.11-2.2.0.jar 10 3.2 Dataset: 타입 안정성을 제공하는 구조적 API Dataset: 정적 타입 코드(자료형 고정 언어. java, scala)를 지원하기 ..
[스파크 완벽 가이드] 2. 스파크 간단히 살펴보기
·
Data Engineering
DataFrame, SQL로 클러스터, 스파크 애플리케이션, 구조적 API를 살펴볼 것. 2.1 스파크 기본 아키텍처 대규모 데이터 처리를 위해 필요한 것 1. 컴퓨터 클러스터: 여러 컴퓨터의 자원을 모아 하나의 컴퓨터처럼 사용 2. 클러스터의 작업을 조율할 프레임 워크 ( = 스파크) 2.1.1 스파크 애플리케이션 스파크 애플리케이션 = 드라이버 프로세스(1) + 익스큐터 프로세스(n) 사용자가 클러스터 매니저에 애플리케이션 제출 -> 클러스터 매니저가 필요한 자원을 할당 -> 스파크가 그 자원으로 작업 처리 클러스터 매니저 물리적 머신 관리, 스파크 애플리케이션에 할당할 자원을 파악하기 위해 사용 ex. 스파크 스탠드얼론 클러스터 매니저, 하둡 YARN, 메소스 드라이버 프로세스 클러스터 노드 중 하..
[스파크 완벽 가이드] 1. 아파치 스파크
·
Data Engineering
스파크의 철학, 개발 배경('사람들은 왜 갑자기 병렬 데이터 처리에 열광하는가?'), 역사, 스파크 실행 정의 빅데이터를 위한 컴퓨팅 엔진이자, 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합 클러스터: 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합 엔진: 특정 프로그램 내부에서 또는 다른 프로그램들을 위해, 핵심적인 기능을 수행해주는 프로그램 특징 널리 쓰이는 언어 4개( 파이썬, 자바, 스칼라, R )를 지원 넓은 라이브러리: SQL, 스트리밍, 머신러닝 등 다양한 실행 환경: 단일 노트북 환경, 클러스터 환경 → 빅데이터 처리가 쉽고, 대규모 클러스터로 확장할 수 있음 1.1 아파치 스파크의 철학 1.1.1 통합 빅데이터 애플리케이션 개발에 필요한 통합 플랫폼을..