오늘의 인기 글
최근 글
최근 댓글
Today
Total
04-18 03:21
관리 메뉴

우노

[Spark] Spark와 Hadoop MapReduce의 차이 본문

Data/Spark

[Spark] Spark와 Hadoop MapReduce의 차이

운호(Noah) 2020. 7. 12. 22:54

SPARK(In-Memory 방식)과 Hadoop MapReduce(분산병렬 처리방식)의 차이

  • Hadoop은 mapreduce 방식으로 데이터를 분산 처리 합니다.

    • 여러 곳에 분산 저장된 데이터를 처리 하기 위해 mapreduce 방식으로 데이터를 처리 합니다.
  • spark 역시 mapreduce 방식의 데이터처리 구조를 지원합니다.

    • 즉, spark도 여러 곳에 저장된 데이터를 처리 하기 위해 mapreduce 방식으로 데이터를 처리 할 수 있다는 뜻입니다.
  • 둘의 차이는, 데이터메모리에 놓고 하느냐, 디스크에 놓고 하느냐 입니다.

  • Hadoop은 기본적으로 디스크로부터 map/reduce할 데이터를 불러오고, 처리 결과를 디스크로 씁니다.

    • 따라서, 데이터의 읽기/쓰기 속도는 느린 반면, 디스크 용량 만큼의 데이터를 한번에 처리 할 수 있습니다.
  • 반면, spark는 메모리로부터 map/reduce할 데이터를 불러오고, 처리 결과를 메모리로 씁니다.

    • 따라서, 데이터의 읽기/쓰기 속도는 빠른 반면, 메모리 용량만큼의 데이터만 한번에 처리 할 수 있습니다.
    • 보다 정확히 표현하면, 메모리 용량보다 큰 데이터를 처리 할 때는 처리 이외의 메모리 내 데이터 교체라던가, 작업 과정 저장, 컨텍스트 스위칭 등과 같은 류의 과부하가 걸릴 수도 있는 것입니다.
  • 결론은, spark나 hadoop이나 모두 mapreduce 방식을 지원합니다.

  • 다만, hadoop은 디스크 기반의 mapreduce 인것이고, spark는 메모리 기반의 mapreduce 인것입니다.

  • 메모리가 커버 가능한 만큼의 데이터라면, 메모리 기반이 유리 할 것이고, 메모리 용량 이상의 데이터라면 크면 클수록, 디스크 기반의 유리 할 것입니다.

  • 또한, 메모리 기반이 속도가 장점인만큼, 기계학습이나 마이닝과 같은 반복 작업이 많을 수록 메모리 기반이 유리할 것입니다. (단, 일정 용량 이하의 데이터인 경우에 한합니다.)

'Data > Spark' 카테고리의 다른 글

[Spark] Broadcast 란?  (0) 2020.07.13
[Spark] RDD 란?  (0) 2020.07.13
[Spark] MPI(Message Passing Interface)란?  (0) 2020.07.12
[Spark] Shuffle 이란?  (2) 2020.07.12
[Spark] SparkConf, spark-shell, spark-submit, spark-defaults.conf 적용 예  (0) 2020.07.10
Comments