
< 요새 데이터 관련 직무를 확인해보면 Spark 사용이 우대사항에 디게 많은데, 대체 뭔가 싶어서 공부하고 정리하는 고런 느낌 😁 >
Batch/Streaming Data
하나의 프로그래밍 모델과 프레임워크로 Batch 처리와 real-time streaming 을 통합 개발할 수 있다. Python, SQL, Scala, Java, R의 다양한 언어로 개발 가능
SQL Analysis
반복된 쿼리, ad-hoc 쿼리 모두 ANSI SQL로 빠르게 분산된 처리결과를 얻을 수 있음. 기존의 다양한 Data Warehouse 솔루션 보다 빠름.(이게 킥인듯)
Data Science at Scale
Petabyte-scale(1024TB) 데이터에 대해 downsampling 없이도 EDA를 수행할 수 있음.
Machine Learning
ML algorithm을 학습시킬 수 있고, 로컬에서 작성하고 수행한 코드가 수천대의 클러스터에서도 동일하게 작동함.
MapReduce의 한계 극복
- 대량의 데이터에 대한 처리 작업은 MapReduce 라는 모델이 처리하는 것이 효율적이고 강력하다는 것이 Hadoop MapReduce에서 검증됨.
- Hadoop MapReduce 는 이전에는 처리할 수 없던 대량의 데이터를 처리할 수 있게 한 의미가 있음. But
- Hadoop MapReduce는 빈번한 자원의 할당과 해제의 문제.
- 중간 결과 파일을 외부 스토리지를 사용함으로서 발생하는 지연시간과 부하 문제.
- 과도한 Shuffle 문제 등
- 위의 문제들로 인해 실제 데이터 처리 작업보다 부가적인 작업에 의해 시간을 너무 많이 소모하고 자원을 낭비하는 문제가 있음.
Multi Language의 확장성
Python, SQL, Scala, Java, R의 다양한 언어로 개발 가능해짐.