본문 바로가기

데엔(Data-Engineering)18

[Spark] 02. 스파크 기초 (RDD란) RDD란 Resilient Distriduted Dataset : 탄력적 분산 데이터셋 왜 RDD를 사용하나? 유연하다 짧은 코드로 할 수 있는게 많다 개발 시 무엇 보다는 어떻게에 대해 더 생각한다.(how-to) Lazy execution #RDD만드는 과정 sc = SparkContext(conf=conf) lines = sc.textFile(f"file:///{directory}/{filename}") #위 코드에서는 lines 객체가 RDD 5개 특징 1. 추상화 데이터는 클러스터에 흩어져있지만 하나의 파일인것 처럼 사용 가능하다. lines = sc.textFile(f"file:///{directory}/{filename}") #불려온 파일은 여러 노드에 저장되어 있지만, lines 객체를 통.. 2023. 2. 6.
[Spark] 01. 스파크 기초 (동작 과정) 스파크란? 빅데이터 처리를 위한 오픈소스 고속 분산처리 엔진이다. ※Hadoop의 연산엔진(MR)을 대체하는 분산처리 [플랫폼 / 엔진 / 프로젝트 / 프레임워크 / 솔루션] ※ 많은 기업에서 사용한다. 왜? 빅데이터의 문제 + 기존 시스템 개선 규모 : 데이터의 크기가 증가 속도 : 데이터가 생성되는 속도 증가 다양성 : 데이터의 종류 증가 기존 Hadoop의 연산엔진(MR) DISK I/O 작업 방식을 개선하기 위해 (속도 문제) 하둡은 크게 3부분으로 나뉜다. 파일시스템(hdfs), 연산엔진(mapreduece), 리소스관리(yarn) 이들 중 스파크는 연산엔진을 대체하는 플랫폼이다. 위 사진과 같이 디스크 작동은 느리다. HDD/SDD 부터 CPU까지의 거리?도 문제지만 hadoop의 MR 은 h.. 2023. 2. 6.
파티션 더보기 파티션은 데이터를 디렉토리로 분리하여 저장하는 것을 말한다. 하이브 같은 파일 기반 테이블은 기본적으로 테이블의 모든 roww 정보를 읽기 때문에 데이터가 많아지면 속도가 느려진다. 파티션 칼럼은 where 조건에서 컬럼 처럼 이용할 수 있기 때문에 처음에 읽어 들이는 데이터를 줄여서 처리 속도를 향상 시켜 준다. 파티션 종류 고정 파티션(static) 고정 파티션은 테이블에 데이터를 입력하는 시점에 파티션 정보를 전달하기 때문에 입력되는 파티션을 알 수 있다. 동적 파티션(dynamic) 동적 파티션은 칼럼의 정보를 이용하여 동적으로 파티션이 생성되기 때문에 쿼리 시점에는 파티션을 알 수 없다. 데이터를 입력할 때 고정 파티션, 동적 파티션을 단독으로 이용할 수도 있고, 고정과 동적 파티션을 혼.. 2022. 12. 30.
하이브란? 하둡 에코시스템 중에서 데이터를 모델링하고 프로세싱하는 경우 가장 많이 사용하는 데이터 웨어하우징용 솔루션이다. 하이브의 특징 RDB의 데이터베이스, 테이블과 같은 형태로 HDFS에 저장된 데이터의 구조를 정의하는 방법을 제공. 데이터를 대상으로 SQL과 유사한 HiveQL 쿼리를 이용하여 데이터를 조회하는 방법을 제공 mapreduce 처리 가능 → 대용량 분석에 용이, 추가적인 설정 & 기능 필요 없음 데이터 처리 정리 인메모리 기반 데이터 처리 Spark, Presto- 메모리 관리 이슈가 중요하다. 여러 번 이용하는 데이터는 캐시에 올리거나 디스크에 스왑해 메모리 해제하는 등의 제어가 필요하다. 디스크 기반 데이터 처리 MapReduce, Hive(내부에서 MapReduce 동작하므로) Hive .. 2022. 12. 30.