https://hazel-developer.tistory.com/285?category=926816
빅데이터를 분산하여 통합적으로 처리할 수 있는 인메모리 기반의 엔진이라고 한줄로 요약할 수 있다.
이러한 정의에서부터 스파크의 장점과 사용하는 이유에 대해서 파악 할 수 있다.
통합
분석 플랫폼
반복적/대화형 작업에 적격
이다<aside> 💡 분산환경 VS MultiProcessing 데이터가 그렇게 크지 않다면, 단일 서버에서 multiprocessing으로 돌리는 것도 고려해볼 만하다. 왜냐하면 분산환경에서 실행계획, 리소스 할당 등의 과정에서 단일서버보다 성능이 저하되는 경우도 있기 때문이다. 그러나 이후 확장성이 큰 경우에는 당연히 분산환경을 고려하는 것이 좋다.
*그렇다면 확장성을 고려해서 분산환경을 고려한다면 어떠한 분산 데이터 처리가 적절할까?
Spark VS MR VS Hive* 통계같은 단순한 데이터 처리/조회는 Hive가 적절. SQL로 작업이 가능하기 때문 기계학습과 같은 반복적인 데이터 플로우/대화형 작업에는 Spark가 적절. 메모리에 의존하는 만큼 리소스 할당관련해서 오류가 발생하기 쉽다. MR은 강한 failure tolerance(결함 감내)를 가진다. 즉 안정적이다.
</aside>
또한 메모리 기반이라 위의 설명 처럼 리소스 할당에 대한 설정에 주의해야 한다.
즉 작업에 대한 처리 속도와 분산보다는 안정성/무결성이 더 중요한상황이라면 스파크 보단 기존의 하둡 시스템을 활용하는 것이 좋다.( MR/ hive)
대량의 트랜잭션 작업에는 유용하지 않다.