프로그래밍 33

[Spark] Cluster mode vs Client mode

Spark Driver란?애플리케이션 실행의 핵심 구성 요소로, Spark 애플리케이션의 전체 실행을 지휘하고 제어하는 역할을 한다. Spark Driver는 클러스터 내 작업의 분배와 실행 상태를 관리하며, 사용자로부터 애플리케이션 로직을 전달받아 클러스터와의 상호작용을 수행한다.Client Mode(default)driver가 클러스터 외부에 있는 형태Application Master는 node manager에게 자원 요청만을 하고 Spark에서 사용중인 리소스를 표시주로 개발 환경에서 디버깅 할 때 의미가 있는 형태장점: 로컬 머신에서 실행되기 때문에 디버깅과 실시간 로그 모니터링이 용이하다.단점: 클러스터의 자원을 효율적으로 사용하지 못할 수 있다.Cluster Modedriver가 클러스터 내부..

AWS Glue VS AWS Step Function

AWS Glue란 ?AWS Glue는 사용자가 여러 소스의 데이터를 쉽게 검색, 준비, 이동, 통합할 수 있도록 하는 서버리스 데이터 통합 서비스중앙 집중식 데이터 카탈로그에서 데이터를 관리할 수 있습니다. 추출, 변환, 로드(ETL) 파이프라인을 시각적으로 생성, 실행, 모니터링하여 데이터 레이크에 데이터를 로드할 수 있다.AWS Glue 특징ETL(Extract, Transform, Load) 툴이다.Serverless이기 때문에 운영 부담이 줄고, 데이터의 전처리를 쉽고 빠르게 한다.기본적으로 ETL을 통해서 데이터를 Data Lake(i.e. S3)나 Data Warehouse(i.e. Redshift)에 이동시킨다.Glue는 ETL 작업을 스케줄링하는 기능을 제공한다. 특정 시간이나 이벤트에 따..

프로그래밍/aws 2024.11.07

[AWS] Lambda vpc Nat gateway 설정 with Terraform

Labmda 에 VPC를 연결하게 되면 기본적으로는 Internet에 접근할 수 없게 되어있다.이것을 해결하기 위해 Nat gateway를 설정해서 이 문제를 해결할 수 있다.가용성을 생각해서 만들기 위해 public subnet 2개, private subnet 2개를 할당하였다. #Vpc.tf#vpc 생성resource "aws_vpc" "capstone_vpc" { cidr_block = "10.10.0.0/16" tags ={ Name="capstone_vpc" }}#public subnet, private subnet 생성resource "aws_subnet" "public_subnet_1a" { vpc_id = aws_vpc.capstone_vpc.id cidr_b..

프로그래밍/aws 2024.06.10

[Spark] K8s로 spark cluster 구축하기

관련 깃허브https://github.com/bitnami/charts/tree/main/bitnami/spark charts/bitnami/spark at main · bitnami/chartsBitnami Helm Charts. Contribute to bitnami/charts development by creating an account on GitHub.github.com1.  Helm 다운로드 helm install my-spark-release oci://registry-1.docker.io/bitnamicharts/spark 2.  상태 확인helm status my-spark-release 3. 웹 ui 확인# localhost:80로 ui 포트포워딩 kubectl port-forward..

[Terraform]GKE Spring LoadBalancer 구축

LoadBalancer란?사용자들이 접근할때 여러 서버로 부하분산하는 방법Terraform GKE 구축# GKE.tf## resource "google_container_cluster" "primary" { name = "gke-cluster-1" location = var.region remove_default_node_pool = true initial_node_count = 1}resource "google_container_node_pool" "primary_preemptible_nodes" { name = "my-node-pool" cluster = google_container_cluster.primary.id node_count = 1 node..

[airflow]Kubernetes dags github 연동

1. SSH 생성하기 ssh-keygen -t rsa -b 4096 -C "your@email.com" *맨 처음 나오는 명령문에 ssh를 저장하려는 경로 설정 2. Github repo deploy key 설정 *deploy key 생성시 1번에서 만든 SSH의 경로에서 반드시 .pub 파일안에 있는 키를 입력해 줘야함 또한 allow write access로 체크해줄것 3. 쿠버네티스 Secret 생성 kubectl create secret generic airflow-git-ssh-secret \ --from-file=gitSshKey=/Users/jang-gyeonghun/.ssh/airflow_key \ --from-file=known_hosts=/Users/jang-gyeonghun/.ssh/..

[airflow] KubernetesExecutor 환경 구축하기 Local_mount.ver

1. Helm repo 등록 helm repo add apache-airflow https://airflow.apache.org 2. Kubernetes PV, PVC .yaml파일 만들기 # pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: airflow-local-dags-folder labels: type: local spec: storageClassName: manual capacity: storage: 2Gi accessModes: - ReadWriteOnce hostPath: path: "/Users/jang-gyeonghun/project_shop/dags" values.yaml 5. values.yaml 수정 및 적용 #이 부분들..

[Python] python으로 notion에 글쓰기

1. 관련 라이브러리 install pip install notion 2. 베이스 코드 확인 from notion.client import NotionClient #노션 Token 입력 client = NotionClient(token_v2="") #글쓰려고 하는 페이지 링크 입력 page = client.get_block("https://www.notion.so/myorg/Test-c0d20a71c0944985ae96e661ccc99821") print("The old title is:", page.title) page.title = "The title has now changed, and has *live-updated* in the browser!" 3. 토큰 확인 방법 Notion 페이지 -> F..