작성
·
402
0
안녕하세요 강사님!
먼저 좋은 강의 만들어주셔서 진심으로 감사드립니다.
다름이 아니라 궁금한 점이 있는데요,
많은 사람들이 이야기하는 것이 hadoop과 스파크에 대한 비교인데요.
스파크의 인메모리 처리를 통한 속도 향상으로 인해 하둡을 넘어섰다(?) 이런 얘기가 많이 있는 것 같습니다.
그런데 본 강의에서는 스파크가 하이브와 비교되고 sql 언어를 맵리듀스로 처리하게 해주는 용도로 설명해주신 것으로 이해했습니다.
스파크는 하둡과 같은 데이터베이스가 아닌것인지 궁금합니다!
답변 1
0
안녕하세요! 박주현 님!
먼저 좋은 질문을 해주셔서 너~무 감사합니다. ^^
먼저 하둡과 스파크는 다음과 같은 큰 차이점과 유사점으로 비교되곤 합니다.
하둡과 스파크의 가장큰 차이는?? 하둡은 주 작업 저장소로 디스크를, 스파크는 메모리를 사용 한다.
하둡과 스파크의 가장큰 유사점은?? 여러 서버들을 하나의 클러스터로 묶어서 마치 하나의 서버인 것처럼 사용 한다
1번의 차이점으로 서로 비교 됐다가, 2번의 유사점으로 하둡에서 스파크를 실행 하다 보니 많이들 혼란스러워 합니다. 하지만 여기서 좀 더 명확히 해야 헷갈리지 않는데요..스파크는 하둡의 "YARN"에서 실행 된다는 것 입니다.
이말을 이해 하려면 스파크에대한 이해가 좀더 필요한데요...스파크는 다양한 클러스터 방식을 지원합니다. 스파크를 분산실행 하려면 자체클러스터, YARN , Mesos, Kubernetes 등을 선택 할 수 있고, 강의에선 하둡의 YARN을 사용한거죠~
파일럿 프로젝트에선 하둡에 데이터를 저장하고 있고, 스파크를 사용해야 한다면 당연히 하둡의 YARN에서 스파크를 실행 하는게 맞게죠!!! 실무에서도 마찬가지로 이미 하둡이 구축 되어 있고 자원에 여유가 있다면, YARN에서 스파크 클러스터를 구성하는것이 데이터의 접근성이나 성능, 관리적 측면에서 좋은 선택입니다.
만약 Mesos + Spark로 클러스터가 별도로 있다면, 이때는 Hadoop 클러스터와 대등하게 비교가 될 수도 있습니다. 하지만 이 둘중에 머가 더 좋다라고 무우 자르듯 잘리지는 않습니다. 왜냐면 대부분의 기업에선 아주 큰데이터를 안정적으로 저장/처리하는 하둡과, 적당한 크기의 데이터를 인메모리에서 빠르게 처리할 수 있는 스파크 둘다 필요하기 때문입니다. 선택을 해야 한다면 성능/안정성/비용 등 모두 따져봐야 겠지만, 빠른 처리가 우선이라면 스파크를 픽해야 겠죠!! ㅎㅎ
다음과 같은 사례도 많습니다. 하둡Yarn+Spark로 운영하다가 데이터와 처리량이 많아지게 되면, 기존 하둡에서 스파크를 분리하게 됩니다. 결국 하둡은 대규모 데이터를 안전하게 저장하며, 대용량 파일을 처리하는 "데이터 레이크" 역할을 하고, 분리된 스파크 클러스터는 인메모리상에서 데이터를 빠르게 처리하는 "데이터 분석계" 역할을 하게 됩니다. 이를 좀더 체계화 한것이 Lambda 아키텍처고, 이후에 Kappa 아키텍처도 등장하게 됩니다.
마지막으로 박주현님께서 혼란스러워 하신, Hive와 Spark SQL의 비교는 아래의 배경으로 설명이 될 듯 합니다.
하둡 초창기에는 자바로 맵리듀스 프로그램을 개발했었는데, 맵리듀스를 좀더 편하게 사용하기 위해 Hive SQL이 나왔습니다.
스파크 초창기에는 스칼라 프로그램으로 개발했었는데, 스칼라를 좀더 편하게 사용하기 위해 Spark SQL이 나왔습니다.
파일럿 프로젝트 끝까지 화이팅 입니다! -빅디 드림