Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 네이버 부스트 코스
- 네이버
- 부스트캠프
- 후기
- 백준 #baekjoon # 2563
- id # tr # 환경변수
- Ubuntu 20.04
- 보기 편하라고 만든
- 운영체제론
- 8기
- Virtual Box 7.0.6
- 웹/모바일
Archives
- Today
- Total
Miner
Spark(5) - Spark 본문
Hadoop = 1세대 빅데이터 처리 기술
Spark = 2세대 빅데이터 처리 기술
Yarn 등을 분산환경 / 컨테이너 위에서 가능 / Scala 로 작성됨
Spark 3.0 구성
Spark Core, SQL, ML, MLib, Streaming, GraphX
Spark vs MapReduce
Spark은 기본적으로 메모리 기반
- 메모리가 부족해지면 디스크 사용
- MapReduce는 디스크 기반
MapReduce는 하둡(Yarn)위에서만 동작
- Spark은 하둡(Yarn)이외에도 다른 분산 컴퓨팅 환경 지원(K8s, Mesos)
MapReduce는 키와 밸류 기반 데이터 구조만 지원
- Spark은 판다스 데이터프레임과 개념적으로 동일한 데이터 구조 지원
Spark은 다양한 방식의 컴퓨팅을 지원
- 배치 데이터 처리, 스트림 데이터 처리, SQL, 머신 러닝, 그래프 분석
Spark 프로그래밍 API
RDD (Resilient Distributed Dataset)
- 로우레벨 프로그래밍 API로 세밀한 제어가 가능
- 하지만 코딩 복잡도 증가
DataFrame & Dataset (판다스의 데이터프레임과 흡사)
- 하이레벨 프로그래밍 API로 점점 많이 사용되는 추세
- 구조화 데이터 조작이라면 보통 Spark SQL을 사용
- DataFrame/Dateset이 꼭 필요한 경우는?
- ML 피쳐 엔지니어링을 하거나 Spark ML을 쓰는 경우
- SQL 만으로 할 수 없는 일의 경
Spark SQL
Spark SQL은 구조화된 데이터 처리를 SQL로 처리
데이터 프레임을 SQL로 처리 가능
- 데이터프레임은 테이블처럼 sql로 처리 가능
- 판다스도 동일 기능 제공
Hive 쿼리 보다 최대 100배까지 빠른 성능을 보장
- 사실은 그렇지 않음. Hive도 그 사이에 메모리를 쓰는 걸로 발전
- HIve : 디스크 -> 메모리
- Spark : 메모리 ->디스크
- Presto : 메모리 -> 디스크
- 최적화 포인트가 다르지만 3개의 성능은 비슷하다.
Spark ML
머신러닝 관련 다양한 알고리즘, 유틸리티로 구성된 라이브러리
Classification, Regression, Clustering, Collaborative Filtering
RDD 기반과 데이터프레임 기반의 두 버전이 존재
- spark.mlib가 RDD 기반이고 spark.ml은 데이터프레임 기반
- spark.mlib는 RDD위에서 동작하는 이전 라이브러리로 더 이상 업데이트가 안됨
항상 spark.ml을 사용할 것 (import pyspark.ml)
Spark ML의 장점
원스톱 ML 프레임워크
- 데이터프레임과 SparkSQL등을 이용해 전처리
- Spark ML 을 이용해 모델 빌딩
- ML Pipeline을 통해 모델 빌딩 자동화
- MLflow로 모델 관리하고 서빙(MLOps)
대용량 데이터도 처리 가능 !
'데이터 엔지니어링 > Spark' 카테고리의 다른 글
Spark(7) (0) | 2024.01.30 |
---|---|
Spark(6) - Spark 사용 (0) | 2024.01.30 |
Spark(4) - Install Hadoop (0) | 2024.01.22 |
Spark(3) - MapReduce 프로그래밍 (0) | 2024.01.22 |
Spark(2) - Yarn (0) | 2024.01.22 |