본문 바로가기

데엔(Data-Engineering)18

HDFS 저장 용량 확보 과정 결론 HDFS 파일 시스템에서 용량을 확보하기 위해서는 휴지통도 비워야 한다. 문제 상황) 여러 번 실습을 반복하는 과정에서 어느 순간 Data가 업로드가 되지 않았다. HDFS 가용 공간은 (30GB*3) 총 90GB 로 현재 프로젝트를 진행하는데 문제없는 용량이었다. 지금은 용량이 11G 정도로 보이지만 내가 오류를 겪었을 때는 600MB 정도 밖에 남아있지 않았다. 그러니 5GB 용량의 데이터 셋을 hdfs에 업로드 하려고 해도 업로드가 되지 않았던 것이다… 문제 해결 과정) 시도1 HDFS에 있는 파일을 삭제했다. 기존에 실습 과정에서 테스트 과정도 여러 번 진행하는 바람에 불필요한 데이터가 쌓였다고 생각했다. 결과1 하지만 여전히 같은 이유로 데이터가 업로드 되지 않았다. 시도2 현 상황을 구글.. 2023. 4. 8.
[Spark] 05. 스파크 기초(Shuffling & Partitioning) • 그룹핑시 데이터를 한 노드에서 다른노드로 옮길때 • 성능을 (많이) 저하시킨다 Shuffle을 일으킬 수 있는 작업들 • Join, leftOuterJoin, rightOuterJoin • GroupByKey • ReduceByKey • ComebineByKey • Distinct • Intersection • Repartition • Coalesce Shuffle은 이럴때 발생한다 • 결과로 나오는 RDD가 원본 RDD의 다른 요소를 참조하거나 • 다른 RDD를 참조할때 Shuffle을 최소화 하려면 • 미리 파티션을 만들어 두고 캐싱 후 reduceByKey 실행 • 미리 파티션을 만들어 두고 캐싱 후 join 실행 • 둘다 파티션과 캐싱을 조합해서 최대한 로컬 환경에서 연산이 실행되도록 하는 방.. 2023. 2. 12.
[Spark] 04. 스파크 기초(Transformations & Actions / Cache & Persist) Spark Operation은 Transformations & Actions 두 가지로 나뉠 수 있다. 메모리를 최대한 활용할 수 있다. (디스크, 네트워크 연산을 최소화 할 수 있다) 데이터를 다루는 task는 반복되는 경우가 많다 • 예) 머신러닝 학습 Transformations 지연 실행되기 때문에 메모리에 저장해둘 수 있다 결과값으로 새로운 RDD를 반환 지연 실행 - Lazy Execution 관련함수 • map() • flatMap() • filter() • distinct() • reduceByKey() • groupByKey() • mapValues() • flatMapValues() • sortByKey() • keys • join (+ leftOuterJoin, rightOuterJo.. 2023. 2. 12.
[Spark] 03. 스파크 기초 (Distributed Data-Parallel / Key-Value RDD) Distributed Data-Parallel? 1. 데이터를 여러개로 쪼개서 여러 노드로 보낸다 2. 여러 노드에서 각자 독립적으로 task를 적용 3. 각자 만든 결과값을 합치는 과정 ※노드간 통신같이 신경써야될 것이 늘어난다※ Spark를 이용하면 분산된 환경에서도 일반적인 병렬처리를 하듯 코드를 짜는게 가능하다. Spark는 분산된 환경에서 데이터 병렬 모델을 구현해 추상화 시켜주기 때문이다. 분산처리 문제 분산처리로 넘어가면서 신경써야될 문제가 많아졌다 • 부분 실패 - 노드 몇개가 프로그램과 상관 없는 이유로 인해 실패 • 속도 - 많은 네트워크 통신을 필요로 하는 작업은 속도가 저하 메모리 > 디스크 > 네트워크 네트워크는 메모리 연산에 비해 100만배 정도 느리다 Structured Dat.. 2023. 2. 12.