Tools 49

Git Reset 과 Revert

Git에서 reset과 revert 명령은 둘 다 과거의 커밋으로 작업을 되돌리는 데 사용되지만, 사용 방식과 영향이 크게 다릅니다. 1. Git reset reset 명령어는 현재 브랜치의 특정 상태로 되돌립니다. 이 과정에서 이후의 커밋 기록이 변경되거나 삭제될 수 있으므로 주의해서 사용해야 합니다. 용도: 주로 로컬에서 작업을 잘못 했을 때 이전 상태로 되돌리기 위해 사용합니다. 방식: reset 명령어는 --soft, --mixed, --hard 세 가지 옵션을 제공합니다. Reset 예시 - 최초 커밋후( text.txt에 값이 1이 있음 ) commit A( text.txt값을 A변경 후에 test2.txt 파일을 add ) 한 상황 1. soft 인덱스(Staged Area)를 유지하면서 H..

Tools/Git 2024.04.13

Spark SQL과 Hive를 통한 데이터 처리

Spark와 Hive스파크 SQL과 Hive의 관계:스파크 SQL은 Apache Spark의 모듈 중 하나로, SQL과 HiveQL 쿼리를 사용하여 데이터를 처리할 수 있습니다. 이를 통해 사용자는 복잡한 데이터 변환과 분석을 SQL 형태로 간단히 수행할 수 있으며, 내부적으로는 스파크의 RDD(Resilient Distributed Datasets)와 DataFrame API를 사용하여 높은 처리 속도와 효율성을 제공합니다.Hive는 데이터 웨어하우스 인프라를 제공하는 Apache 프로젝트로, SQL과 유사한 HiveQL을 통해 빅데이터를 쿼리, 요약, 분석할 수 있습니다. Hive는 Hadoop 위에서 동작하며, 대용량 데이터셋의 저장과 처리를 위해 설계되었습니다.연동 방법스파크 SQL은 Hive와 ..

Tools/Spark 2024.03.26

K8S Ingress & Egress Gateway

Isto Gateway Istio는 쿠버네티스와 같은 컨테이너 오케스트레이션 시스템 위에서 동작하는 오픈 소스 서비스 메시(service mesh) 솔루션입니다. 서비스 메시는 마이크로서비스 간의 통신을 관리하고, 제어하며, 보안을 강화하는 데 사용되는 인프라 계층입니다. Istio는 마이크로서비스 아키텍처 내에서 서비스 간의 통신을 쉽게 만들어주고, 트래픽 관리, 서비스 간의 인증과 인가 처리, 서비스 간의 데이터 모니터링과 같은 기능을 제공합니다. 기본 구성 요소 Istio는 다음과 같은 주요 구성 요소로 이루어져 있습니다: Envoy Proxy: 모든 서비스 인스턴스 옆에 배치되는 경량의 사이드카 프록시. Envoy는 Istio의 데이터 플레인을 구성하며, 모든 진입 및 진출 트래픽을 중재하고, 고..

Tools/K8S 2024.03.25

Spark RDD 저장과 캐싱

RDD의 저장 RDD 저장에 대한 개념은 RDD가 메모리에 저장되거나 디스크에 저장될 수 있다는 것을 의미합니다. 저장 방법은 다음과 같이 세분화됩니다: RDD 스토리지 레벨 1. 메모리 저장 (In-Memory Storage) MEMORY_ONLY: RDD를 JVM(Java Virtual Machine)의 힙 메모리에만 저장합니다. 이 방식은 가장 빠른 읽기 속도를 제공하지만, 메모리 용량이 제한적이기 때문에 모든 데이터를 저장할 수 없을 경우 일부 데이터를 잃어버릴 수 있습니다. MEMORY_AND_DISK: RDD의 일부를 메모리에, 나머지를 디스크에 저장합니다. 메모리 용량을 초과할 경우, 초과하는 데이터는 디스크에 저장됩니다. 이 방법은 메모리 용량을 초과하는 데이터를 처리할 때 유용하지만, 디..

Tools/Spark 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