본문 바로가기
728x90

Apache Spark8

[Spark] Spark Job 이번 포스팅에선 스파크의 작업에 대하여 알아보겠습니다. 먼저 스파크 작업은 어떻게 이루어져 있는지를 알아보고 , 어떤 방식으로 실행될 수 있는지를 알아볼게요! Job의 구조 spark에서 수행되는 작업은 job, stage, task 로 구성됩니다. job : spark app에 제출된 작업을 의미합니다. stage : 단위에 따라 구분하는 작업으로 job을 여러 개의 stage로 쪼갤 수 있습니다. task : 익스큐터에서 실행되는 실제 작업의 단위로 가장 작은 단위의 객체입니다. Spark Application의 구조 spark application 은 driver, executor process로 실행되는 프로그램입니다. application 에는 작업을 관리하는 dirver와 작업이 실행하는 노드.. 2022. 12. 15.
[Spark] Spark Evalution Spark 에는 크게 두 가지 종류의 연산이 존재합니다. Transformation 과 Action 인데요, 두 가지로 나눠진 이유와 그 역할은 무엇인지 알아보겠습니다. 연산 분류 이유 두 가지 종류의 연산이 존재하는 이유를 이해하기 위해선 먼저 Spark 의 특징인 Lazy Evalution 의 개념을 알고 가야 합니다. Lazy Evalution 을 한국어로 번역하자면 게으른 연산이라고 해석할 수 있는데요. 게으른 연산 기법으로 인하여 Spark 는 연산 실행 계획 최적화가 가능합니다. 사용자가 입력한 연산들을 즉시 수행하지 않고 메타데이터에 연산이 요청되었다는 사실만 기록하고 연산의 가장 최적의 수행 방법을 수립해둡니다. action 함수가 호출되기 전까지는 실제 데이터 로딩 혹은 연산이 이루어지지.. 2022. 12. 13.
[Spark] Spark Partitioning Spark의 Partitioning이란? 스파크의 각 RDD는 서로 다른 노드들에서 연산이 가능하도록 여러 개의 Partition으로 나눌 수 있습니다. Partitioning 사용 이유 왜 파티셔닝을 진행하는 걸까요? 그 이유는 파티션의 크기와 수를 조정하고 배치 방법을 설정하여 RDD의 구조를 제어가 가능하기 때문입니다. RDD의 데이터를 여러 파티션에 나누게 되는데 모든 Pair RDD에 대해 파티셔닝이 가능합니다. 여기서 PairRDD 란 키, 값 쌍을 가지고 있는 RDD를 의미하며 PairRDD도 일반 RDD에 지원하는 함수를 사용할 수 있습니다. 파티셔닝은 RDD가 한 번만 스캐닝된다면 의미가 없으며 join 같은 키 중심의 연산에서 데이터가 여러 번 재활용될 때 의미가 있습니다. Partit.. 2022. 12. 11.
[Spark] Spark 란? Spark 의 등장 배경 HDFS에서 진행되는 하둡의 속도적 한계를 극복하기 위하여 등장하였습니다. 하둡과는 달리 Ram을 Rom처럼 Read Only로 사용하여 반복 처리 작업에서는 하둡보다 속도가 최소 100배 이상 빠르고 다양한 언어를 지원하여 실시간 데이터 처리라는 니즈를 충족시키며 국내의 실시간 데이터 분석에서 스파크의 비율이 상당 부분을 차지하게 되었습니다. Spark 자료 구조 Spark의 자료구조는 크게 아래와 같이 분류 가능합니다. RDD DataFrame DataSet 각각의 자료 구조의 특징을 자세하게 알아보겠습니다. RDD 1. 분산 , 불변 먼저 스파크의 가장 기본적인 데이터 단위로 RDD는 불변(Read Only) 의 특성을 가지고 있습니다. 따라서 특정 동작을 위해서는 RDD .. 2022. 12. 11.
728x90