5.2 대규모 데이터 처리 필요성과 프레임워크#

📌 대규모 데이터의 기준#

  • 기존의 데이터 처리방법으로는 감당하기 힘들 정도로 방대한 분량의 데이터를 뜻합니다.

  • 수십 TB ~ 수십 PB 정도의 규모입니다.

📌 이 대규모 데이터를 처리하기 위해 필요한 프레임워크로는 어떤 것들이 있을까요?#

Hadoop#

  • 대용량의 데이터를 분산 처리를 할 수 있는 오픈소스입니다.

  • HDFS + MapReduce

    • HDFS: 분산 저장 기술

    • MapReduce: 분산 처리 기술

Spark#

  • 실시간성 데이터에 대한 니즈가 증가하며 하둡으로 처리하기에는 속도 측면에서 부적합한 시나리오들이 등장하기 시작했습니다.

  • 분산 시스템을 사용한 프로그래밍 환경으로 대량의 메모리를 활용하여 고속화 실현합니다

  • 인메모리상에서 동작하기 때문에, 반복적인 처리가 필요한 작업에서 속도가 하둡보다 최소 1000배 이상 빠릅니다.

  • 스파크는 Hadoop 이 아니라 MapReduce 를 대체하는 기술입니다.

Hive#

  • HDFS등에 있는 파일을 읽어들여 쿼리로 분석을 수행합니다.

  • Hive는 데이터베이스가 아닌 데이터 처리를 위한 배치 처리 구조입니다.

  • 대규모 정형 데이터를 처리할 때 매우 안정적입니다.

🤔 Spark 와 Hive 둘 중 어떤 걸 사용해야 할까요?#

  • Spark의 경우 실시간 데이터 처리와 데이터 과학 등의 분석 작업에 매우 적합합니다.

    • 빠른 처리 속도, 병렬 처리를 위해 분산 컴퓨팅 환경에서 실행합니다.

    • 다양한 언어 지원합니다.

  • Hive의 경우 대용량의 정형 데이터를 처리하기에 적합하며, 데이터 마이닝 및 비즈니스 인텔리전스 작업에 적합합니다.

    • SQL 기반의 쿼리 언어 지원합니다.

    • 데이터를 읽고 쓰는 데 많은 시간이 소요되지만, 대규모 데이터를 처리하는 데 효율적이기에 안정적입니다.