Apache Spark 3.0
Apache Spark 3.0.0 preview2 버전이 2019년 12월 23일에 릴리즈 되었다.
향후 버전의 기능을 미리 알아 볼 수 있으며, 곧 정식으로 Spark 3.0이 나올 것으로 기대된다.
몇가지 달라지거나 추가되는 기능에 대해서 알아봅시다.
언어
- Spark 3.0은 Python3를 공식 지원하고, Python 2.x 버전은 더이상 지원되지 않는다. Scala버전은 2.12로 향상되었으며, 또한 JDK 11을 지원하게 된다.
SQL 최적화
- DDP(Dynamic Partition Pruning)을 도입하였으며, 논리 계획과 물리 계획에 모두 적용된다. 속도 향상
GPU 지원
- 기존의 Spark MLlib, Spark ML은 딥러닝에 대한 기능이나 알고리즘을 지원하지 않았다. TensorflowOnSpark, BigDL, MMLSpark 등의 딥러닝 알고리즘을 제공하는 프로젝트들과 연동하여 사용은 할 수 있었지만, 나름 불편함과 제약이 존재하기는 마련이었다.
- Spark 3.0에서는 Nvidia, AMD, Intel과 같은 GPU에 대한 지원을 제공하여, 딥러닝에 대한 기능을 추가하고자 한 흔적이 보입니다.
Kuberbetes 통합
- 기존 Spark 2.x에서도 제공되기는 하였지만, Spark 3.0에서는 Spark on Kuberbetes을 위한 셔플 서비스를 제공하여 동적인 관리가 가능하도록 지원합니다.
Graph 처리
- 기존 Spark에서는 Graph처리를 위한 기능이 있었지만, Spark 3.0에서는 SparkGraph라는 새로운 모듈이 추가되었다. 이 기능에는 Neo4J에서 개발한 Cypher 쿼리 언어로 처리되는 그래프 모델 및 알고리즘이 제공된다.
Delta Lake
- 델타 레이크는 스키마 강제, 메타데이터 관리 같은 기능을 제공하는 스파크용 오픈소스 스토리지 계층으로, ACID 트랜잭션과 기타 데이터 관리 기능을 머신러닝 및 기타 빅데이터 작업에 제공한다.
자세한 내용 - http://www.itworld.co.kr/print/121628
Apache Arrow와의 통합
- Spark 3.0에서 효율적인 빅데이터 처리 분석 작업을 위해 Apache Arrow 데이터 형식과 통합 제공한다.
- Apache Arrow는 인-메모리 데이터를 위한 이기종 언어간의 개발 플랫폼이다.
참고 - https://medium.com/cloudzone/apache-spark-3-0-review-what-the-spark-is-all-about-998844e12b3c