반응형

전체 글 101

타입스크립트 스프레드 연산자, 나머지 매개변수(...), 언더스코어(_)

TypeScript에서 .., ..., _ 같은 기호들은 각각 다른 용도로 사용됩니다. 여기서 ..는 TypeScript 문법에 직접적으로 해당하는 기호가 아니지만, ... (스프레드 연산자 또는 나머지 매개변수)와 _ (일반적으로 무시되는 변수 또는 속성을 나타내는 데 사용)는 TypeScript 및 JavaScript에서 중요한 역할을 합니다. ... (스프레드 연산자 또는 나머지 매개변수) 스프레드 연산자 (Spread Operator): 배열이나 객체의 모든 요소를 개별 요소로 확장하거나, 함수 호출 시 인자 리스트로 전개하는 데 사용됩니다. 배열 또는 객체 리터럴 내부에서 사용할 수 있습니다. let numbers = [1, 2, 3]; let moreNumbers = [...numbers, 4..

Spark 파니셔닝

Spark 파티셔닝 Apache Spark에서 RDD(Resilient Distributed Dataset) 파티셔닝은 데이터를 분산 처리하기 위해 데이터셋을 물리적으로 분할하는 방식입니다. 파티셔닝은 Spark의 병렬 처리와 직접적으로 관련이 있으며, 데이터를 여러 노드에 분산시켜 처리 속도와 효율성을 높입니다. RDD 파티셔닝의 주요 목적은 네트워크 통신 비용을 최소화하면서 데이터 처리 작업을 최적화하는 것입니다. spark 파티셔닝의 종류 - 해시 파티셔닝 (Hash Partitioning): 이 방법은 키를 기준으로 데이터를 파티션에 할당합니다. 각 키는 해시 함수를 통해 파티션 번호에 매핑되며, 이는 키가 동일한 데이터가 같은 파티션에 위치하도록 보장합니다. 이 방식은 키 기반의 집계나 조인 작..

카테고리 없음 2024.03.21

Spark 브로드캐스트 변수(Broadcast Variables)와 어큐뮬레이터(Accumulators)

브로드캐스트 변수(Broadcast Variables) 브로드캐스트 변수는 클러스터의 모든 노드에 큰 읽기 전용 값을 효율적으로 분산하기 위한 Spark의 메커니즘입니다. 이 변수들은 모든 작업 노드에서 접근할 수 있도록 메모리에 캐시되므로, 데이터를 각 노드에 복사하지 않고도 공유할 수 있습니다. 브로드캐스트 변수는 일반적으로 전체 작업에서 공통적으로 사용되는 대규모 데이터 세트(예: 참조 데이터, lookup 테이블)에 사용됩니다. val spark: SparkSession = ... val largeLookupTable = spark.sparkContext.broadcast(loadLargeLookupTable()) spark.sparkContext.parallelize(data).map { ite..

Tools/Spark 2024.03.21

Spark RDD 연산 예제 모음

TransFormation 연산 1. map map 함수는 RDD의 각 요소에 주어진 함수를 적용하고 결과로 새 RDD를 생성합니다. # RDD 생성 rdd = sc.parallelize([1, 2, 3, 4]) # 각 요소에 2를 곱함 result = rdd.map(lambda x: x*2) result.collect() # 결과: [2, 4, 6, 8] 2. filter filter 함수는 주어진 조건 함수에 따라 요소를 필터링합니다. 조건에 맞는 요소만 포함하는 새 RDD를 반환합니다. # RDD 생성 rdd = sc.parallelize([1, 2, 3, 4, 5]) # 짝수만 필터링 result = rdd.filter(lambda x: x % 2 == 0) result.collect() # 결과..

Tools/Spark 2024.03.13

Spark RDD 연산 주요 개념

RDD 연산 RDD는 두 종류의 연산을 지원합니다: Transformations: 원본 RDD를 변형하여 새로운 RDD를 생성하는 연산입니다. 예를 들어, map, filter, flatMap, union, distinct 등이 있습니다. Transformations는 지연 계산(lazy evaluation) 방식을 사용합니다. 즉, 실제 연산은 액션이 호출될 때까지 실행되지 않습니다. Actions: RDD에 저장된 데이터에 대해 연산을 수행하고 결과를 반환하는 연산입니다. 예를 들어, count, collect, reduce, take 등이 있습니다. 액션 연산은 즉시 실행되며, 결과는 Spark 드라이버 프로그램으로 반환됩니다. Lazy Evaluation Apache Spark의 "Lazy Eva..

Tools/Spark 2024.03.11

RDD의 생성과 데이터 처리

[ 목차 ] RDD(Resilient Distributed Dataset)는 Apache Spark의 핵심 개념 중 하나로, 불변성을 가지며 분산된 데이터 컬렉션을 나타냅니다. RDD는 데이터를 메모리에서 효율적으로 처리하고, 병렬로 연산을 수행할 수 있도록 설계되었습니다. 이는 Spark가 대규모 데이터를 빠르게 처리할 수 있는 주요 이유 중 하나입니다. RDD의 주요 특징 불변성(Immutability): 한 번 생성된 RDD는 변경될 수 없습니다. 데이터를 변형하려면, 변형 연산을 적용하여 새로운 RDD를 생성해야 합니다. 복원력(Resilience): RDD는 고장 내성을 가지고 있으며, 데이터 손실 시 원본 데이터로부터 자동으로 복구될 수 있습니다. 이는 RDD의 lineage(계보) 정보를 통..

Tools/Spark 2024.03.11

스파크 클러스터 동작방식

yarn에 대한 설명 : https://chalchichi.tistory.com/79 애플리케이션 컴포넌트 Application: Spark에서 구동되는 사용자 정의 프로그램으로, 데이터 처리를 위해 클러스터 상의 드라이버 프로그램과 실행기(Executors)로 구성됩니다. Driver program: 애플리케이션의 진입점으로, main() 함수를 실행하고 데이터 처리 작업을 관리하는 SparkContext를 생성합니다. Cluster manager: 클러스터 상에서 리소스(예: 메모리, CPU 등)를 관리하고 할당하는 역할을 하는 외부 서비스입니다. 예로는 Apache Mesos, Hadoop YARN, Kubernetes, Spark 자체의 독립 실행 모드(Standalone) 등이 있습니다. Dep..

Tools/Spark 2024.03.07

Spark 클러스터 환경 구성과 실행

스파크의 실행 모드 로컬 모드 (Local Mode) 설명: Spark 로컬 모드는 단일 기계에서 Spark 애플리케이션을 실행하기 위한 모드입니다. 개발이나 테스트 목적으로 주로 사용되며, 클러스터 환경이 필요 없습니다. 사용 케이스: 소규모 데이터셋 처리, 코드 테스트, 알고리즘 개발 등. 설정: Spark를 설치한 후, Spark 애플리케이션을 실행할 때 마스터 URL로 local 또는 local[*]을 사용하여 로컬 모드로 실행할 수 있습니다. 여기서 [*]는 사용 가능한 모든 코어를 사용하겠다는 의미입니다. # Spark Shell을 로컬 모드로 시작 $ ./bin/spark-shell --master local[4] 독립 실행형 모드 (Standalone Mode) 설명: Spark의 독립 실..

Tools/Spark 2024.02.19

빅데이터, 하둡 및 Spark 소개

하둡의 간단한 소개 하둡은 데이터 지역성이라는 개념에 바탕을 둔 데이터 저장 및 처리 플랫폼이다. 데이터 지역성은 요청한 데이터를 원격 처리 시스템이나 호스트로 보내 처리하는 기존의 방식 대신 데이터가 있는 곳으로 이동해서 계산하는 데이터 처리 방식을 말한다. 즉 클러스터를 구성하는 각 클러스터 노드에서 데이터를 보관 , 처리한 결과를 종합하여 원하는 결과를 취하는 방식이다. 하둡은 데이터를 분산 , 처리 하기 위하여 HDFS , YARN 이라는 아키텍쳐를 구성하고 있다. 하둡의 기본 구성요소 : https://chalchichi.tistory.com/77\ Hadoop 컴퓨팅과 클러스터 DFS 하둡의 분산 파일 시스템(Distributed File System, DFS)은 하둡 에코시스템의 핵심 구성 ..

Tools/Spark 2024.02.18

HTTP 쿠키와 web storage에 대하여

기본 동작 및 설명 Cookie는 웹 브라우저와 웹 서버 간에 정보를 교환하는 작은 데이터 조각입니다. 이 정보는 클라이언트 측에서 관리되며, 주로 세션 상태를 유지하거나 사용자 개인화에 사용됩니다. 1. 서버는 쿠키가 필요하다고 판단하면 set-Cookie : user ~~ response 헤더를 만들어서 넣어준다. 2. 클라이언트는 쿠키를 쿠키저장소에 저장하고 다음부터 모든 request에 쿠키를 자동으로 보내도록 한다. 3. 언제나 다 보낼 수도 없고 보안도 문제가 있다. 따라서 아래와 같이 제약사항을 설정해야 한다. Set-Cookie: user_id=123; Expires=Sat, 01 Jan 2023 00:00:00 GMT; Max-Age=604800; Path=/; Secure; HttpOn..

C.S/WEB 2023.12.09
반응형