13주차 금요일, 65일차 Today I Learned
빅데이터 처리 시스템, Hadoop Spark (5)
: SparkML, 클라우드 기반의 Spark 클러스터
✏️ 학습 내용
1. SparkML
머신러닝 관련 다양한 알고리즘, 유틸리티로 구성된 라이브러리이다. (아직 딥러닝 지원은 미약하다.)
https://spark.apache.org/docs/latest/ml-classification-regression.html
Classification and regression - Spark 3.5.0 Documentation
spark.apache.org
- 원스톱 ML 프레임웍이자, 대용량 데이터도 처리 가능하다.
- 데이터 프레임과 SparkSQL 등을 이용해 전처리
- spark.ml : 모델 빌딩
- ML Pipeline : 모델 빌딩 자동화
- MLflow : 모델 관리 및 서빙을 위한 Ops 관련 기능 제공
대표적으로 보스턴 주택가격 예측 모델을 만드는 Regression, 타이타닉 승객 생존 예측 모델을 만드는 Classification 실습이 있지만, 이는 추후 SparkML을 다루는 주차에서 더 상세히 공부할 예정이다.
SparkML 피쳐 변환 :
피쳐 값들을 모델 훈련에 적합한 형태로 바꾸는 것
- Feature Transformer
- Feature Extractor
https://spark.apache.org/docs/latest/ml-features.html#feature-transformers
Extracting, transforming and selecting features - Spark 3.5.0 Documentation
spark.apache.org
https://spark.apache.org/docs/latest/ml-features.html#feature-extractors
Extracting, transforming and selecting features - Spark 3.5.0 Documentation
spark.apache.org
SparkML Pipeline
모델 빌딩과 관련되어 트레이닝 셋의 관리가 안 된다는 점, 모델 훈련 방법이 기록 안 된다는 점, 모델 훈련에 많은 시간이 소요된다는 점과 같은 흔한 문제들이 발생될 수 있다. 이 문제 중에 2, 3번째 문제를 해결할 수 있는 것이 바로 ML Pipeline이다. 이는 자동화를 통해 에러 소지를 줄이고 반복을 빠르게 가능하게 해준다.
ML 파이프라인이란, 데이터 과학자가 머신러닝 개발과 테스트를 쉽게 해주는 기능이며, ㅁ신러닝 알고리즘에 관계없이 일관된 형태의 API를 사용하여 모델링이 가능하다. 데이터 프레임, Transformer, Estimator, Parameter 4개의 요소로 구성되어 있다.
2. 클라우드 기반의 Spark 클러스터
AWS에서 Spark을 실행하려면 EMR (Elastic MapReduce) 위에서 실행하는 것이 일반적이다. EMR이란 AWS의 하둡 서비스이며, EC2 서비스들을 Worker node로 사용하고 S3를 HDFS로 사용한다. AWS 내의 다른 서비스들과 연동이 쉽다는 특징도 있다.
- AWS의 EMR 클러스터 생성
- EMR 생성 시 Spark을 실행 (옵션으로 선택하여 실행 가능)
- EMR의 마스터 노드를 드라이버 노드로 사용
PySpark 잡 실행 과정은 다음과 같다.
- Spark 마스터노드에 SSH로 로그인 (이를 위해 마스터노드의 TCP 포트번호 22번을 오픈해야 함)
- spark-submit을 이용해서 실행하면서 디버깅
- 두 개의 잡을 AWS EMR 상에서 실행
💡 배운 점
- SparkML과 제공 기능에 대해서 배웠다.
- ML pipeline을 비록한 다양한 SparkML 기능에 대해 배웠다.
- AWS에서 Spark은 EMR의 일부로 동작한다.
- EMR 상의 Spark Job은 YARN 클러스터 모드로 실행한다.
📝 남아있는 의문과 개선점
- pyspark.ml을 이용해 실제 머신러닝 모델을 만드는 실습 해보기
☁️ 소감
데브코스 스터디 모임인 '모각콩'의 오프라인 모임에 다녀왔다. 배우는 내용들을 공유했는데, 다들 수요일 강의가 중요하다고 의견을 알려주었다. 또한 섣부르게 Spark을 컴퓨터에 설치하지 말고 잘 알아보라고 알려주었다. 덕분에 강의를 듣는 데에 시간이 조금 밀렸지만 유의미한 시간이었던 것 같다.
'Data Engineering > grepp 데브코스 : TIL' 카테고리의 다른 글
[TIL_2024.01.23] 스트리밍 처리 (2) : Udemy 추천 엔진 발전 여정 (0) | 2024.02.26 |
---|---|
[TIL_2024.01.22] 스트리밍 처리 (1) : 실시간 데이처 처리 (2) | 2024.02.26 |
[TIL_2024.01.18] 빅데이터 처리 시스템, Hadoop Spark (4) : Spark 내부 동작 이해하기 (0) | 2024.02.15 |
[TIL_2024.01.17] 빅데이터 처리 시스템, Hadoop Spark (3) : Spark 프로그래밍 - SQL (1) | 2024.02.15 |
[TIL_2024.01.16] 빅데이터 처리 시스템, Hadoop Spark (2) : Spark 프로그래밍 - DataFrame (0) | 2024.02.15 |