프로그래머스 같은 숫자는 싫어 (스택/큐 Lv1) 문제이며, 풀이는 파이썬 python으로 진행했습니다.https://school.programmers.co.kr/learn/courses/30/lessons/12906 문제설명배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적..
HDFS 상에 어떤 형태로 데이터가 저장되거나 존재하는가를 고려하여 데이터구조 최적화할 수 있다. 이때 사용하는 방식으로 Bucketing과 Partitioning이 있다.Bucketing셔플링을 줄이기 위해서 사용 (컬럼 기준 재분배)Aggregation이나 Window 함수, JOIN 에서 많이 사용되는 컬럼이 있는지 확인하고 있다면 DataFrame을 특정 컬럼(들)을 기준으로 나눠서 테이블로 저장Bucket의 수와 기준 ID 지정 필요 ⇨ DataFrameWriter의 bucketBy 함수 사용지정된 버킷의 수만큼 HDFS 파티션 생성File System Partitioning지금까지 배운 내용에서 partition은 데이터프레임을 나눠 저장할 때 단위로 사용되었다면, ▶️ 여기서 이야기 하는 F..
분산 컴퓨팅 시스템 YARN 이란?하둡 2.0에 등장한 분산 컴퓨팅 시스템으로 분산 파일 시스템(HDFS)위에 올라간 범용 컴퓨팅 프레임워크로하둡 1.0에서 분산파일시스템위에 분산컴퓨팅시스템 MapReduce를 바로 사용하는 방식 ↔️ 세부 리소스 관리가 가능하고 낮은 생산성을 개선하기 위해 클러스터 자원 관리자 역할의 YARN이 만들어졌다. 분산 컴퓨팅 시스템 YARN의 구조리소스 매니저(Resource Manager)Job Scheduler, Application Manager의 2종류의 데몬이 존재Master 역할노드 매니저(Node Manager)slave 마다 노드매니저가 설치되어 있음노드매니저는 그 서버에 resource를 관리하는데 여기서 resource란 컨테이너를 말함 컨테이너(Con..
HDFS 분산 파일 시스템 이란?Hadoop Distributed File Sysyem으로 데이터를 블록단위로 나눠서 저장한다. 블록의 크기는 128MB가 디폴트 값으로 수정이 가능하다.큰 데이터를 블럭 단위(128MB)로 잘게 나눠서 다수의 서버에 분산 저장하는 방식으로저장된 서버 한 대가 고장이 났을 때 데이터 유실이 발생할 수 있으므로, Replication Factor를 적어도 3개로 둬서 각 블럭을 3군데에 중복해서 저장하도록 한다. ➡️ 블록 복제 방식(Replication)동시에 이 3대의 서버가 고장나지 않는 한 복구가 가능하기 때문에 Falut tolerance를 보장한다.실제 데이터 블록을 저장하는 데이터 노드가 있고 slave로 볼 수 있고 다수의 노드로 구성되어 있다.다수의 slav..
하둡(Hadoop) 이란?다수의 노드로 구성된 클러스터 시스템(cluster)An open source software platform for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware- Hortonworks의 정의-분산 파일 시스템 HDFS분산 컴퓨팅 시스템 MapReduce ⇨ 이후에 Spark 등 등장하둡의 등장 배경Doug Cutting이 구글랩 발표 논문들에 기반해 만든 오픈소스 프로젝트'03 The Google File System'04 MapReduce: Simplified Data Processing on Large ..