인공지능 개발일지

Apache Spark와 Hadoop의 용도 및 차이점 본문

인공지능/데이터 분석

Apache Spark와 Hadoop의 용도 및 차이점

Prcnsi 2022. 6. 4. 15:17
728x90

 

안녕하세요. 이번 시간에는 스파크와 하둡의 차이에 대해 알아봅시다.

요즘 드는 생각이 머신러닝이 이런 거고 딥러닝이 이런 것이란 건 알겠는데 이게 실제 서비스단에서 배포가 되고 사용될 때는 파이프라인이 어떤 방식으로 구축되고 실시간으로 들어온 데이터는 구체적으로 어떻게 처리가 되지 하는 의문점이 있었다. 이에 찾아보니 분산처리를 이용해 실시간 데이터를 처리하는 프레임워크가 크게 Apache Spark와 Hadoop이 있었다. 그래서 이에 대해 간단히 알아보자.


 

 

하둡은 슈퍼 컴퓨터 없이 서버를 여러대 연결해 빅데이터 분석을 가능하게 했다. 그러나 여러 단점이 있어 이를 보완해 나온것이 아파치 스파크이다. 하둡과 비슷하게 분산처리를 하지만 이에 비해 메모리를 효율적으로 빠르게 처리한다.

 

 

우선 하둡은 아래와 같은 특징을 가지며 사용된지 10년이 넘어가는 언어로 안정성이 있다.

  • 하둡: 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈소스 프레임워크
    • 대량의 데이터에 대해 분산처리를 지원
    • 사용 이유는 비용이 들지 않고 분산처리로 속도가 빠르다.
    • 정적이거나 배치 프로셋싱을 기다릴 수 있다면 맵리듀스만으로 문제가 없이 처리할 수 있다.
    • 하둡은 HDFS라는 분산형 파일 시스템과 프로세싱 컴포넌트인 맵리듀스 제공
    • 매번 운영 결과를 디스크에 저장해서 고장시 대응에 유리
    • 단점은 맵리듀스에서 map 함수가 모두 종료해야 reduce 함수가 실행되어 성능 손실이 크다. 이후에 되어 위 기능은 가능해졌지만 성능상에 손실이 있음
    • 따라서 실시간 서비스 제공이 불가능하여 하둡은 배치성 통계작업에만 주로 투입됨

 

 

 

다음으로 스파크는 머신러닝 서비스에 적합한 실시간 데이터 처리 방법으로 특징은 아래와 같다.

  • 스파크
    • 인메모리 데이터 엔진을 통해 초기 맵리듀스의 성능상 한계를 크게 극복케 함
    • 스파크가 하둡에 비해 10배 정도 속도가 더 빠르다
    • 하둡 기반으로 구동하는 것을 목적으로 만들어짐
    • 스파크나 하둡이나 비슷한 역할을 하기 때문에 하둡이 꼭 필요하진 않음
    • 탄력적 분산 데이터셋을 이용하여 데이터 객체들을 클러스터 전반에 분산해서 사고 시 완벽 복구 가능
    • JAVA, Python, R 등 다양한 언어를 사용해 스파크와 연동 가능

 

정리하면 스파크도 결국 하둡 기반 구동을 목적으로 만들어졌기 때문에 뭐가 더 좋기보단 같이 써도 좋고 실시간 데이터에 대한 상호작용이 즉각적으로 필요한 게 아니고 분산처리가 필요하다면 하둡을, 실시간 처리가 필요하고 머신러닝 엔지니어링에는 스파크가 조금 더 적합하다고 한다. 

728x90