Apache Spark를 사용한 맵리듀스

Suraj P 2023년6월21일
  1. 맵리듀스 개요
  2. Apache SparkMapReduce 실행
Apache Spark를 사용한 맵리듀스

이 기사에서는 Scala 프로그래밍 언어의 도움으로 Apache Spark를 사용하여 MapReduce 작업을 수행하는 방법을 배웁니다.

맵리듀스 개요

‘맵리듀스’는 ‘하둡’의 프로그래밍 패러다임으로 막대한 양의 데이터를 병렬로 처리하도록 설계됐다. 이 처리 또는 전체 작업은 작업이라고도 하는 더 작은 청크로 나누어 수행됩니다.

이것은 마스터-슬레이브 아키텍처를 따르기 때문에 마스터 노드는 작업을 할당하고 슬레이브 노드는 더 작은 작업(작업)을 수행합니다. 이러한 슬레이브(서버 클러스터)는 개별 출력을 처리하고 제공합니다.

MapReduce에는 두 가지 구성 요소가 있습니다. 하나는 매퍼이고 다른 하나는 리듀서입니다. 첫 번째 단계에서 데이터는 들어오는 데이터를 키와 값 쌍으로 변환하는 매퍼에 공급됩니다.

매퍼에 의해 생성된 출력은 종종 중간 출력이라고 합니다. 매퍼의 이 출력은 키를 기반으로 집계 정렬 유형의 계산을 수행하고 최종 출력인 키-값의 최종 쌍을 제공하는 리듀서에 대한 입력으로 제공됩니다.

Apache SparkMapReduce 실행

MapReduceHadoop 시스템의 중요한 부분이지만 Spark를 사용하여 실행할 수도 있습니다. 단어 수 코드를 더 잘 이해하기 위해 예제로 사용하는 매우 잘 알려진 MapReduce 프로그램을 보게 될 것입니다.

따라서 문제는 주어진 텍스트 파일에서 각 단어의 빈도를 세어야 한다는 것입니다.

전제 조건:

아래 프로그램을 실행하기 위해서는 시스템에 이러한 것들이 설치되어 있어야 합니다.

  1. JDK8
  2. 스칼라
  3. 하둡
  4. 스파크

파일을 HDFS 파일 시스템에 넣고 spark 셸을 시작해야 합니다.

예제 코드: 아래 코드는 Spark 셸에서 실행되었습니다.

val ourData = sc.textFile("myFile.txt");

ourData.collect;

val splitLines = ourData.flatMap(line => line.split(" "));

splitLines.collect;

val mapperData = splitLines.map(word => (word,1));

mapperData.collect;

val reducerData = mapperData.reduceByKey(_+_)

reducerData.collect

위의 코드가 실행되면 myfile.txt에 있는 각 단어의 빈도를 제공합니다.

작가: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub