반응형

 

빅데이터 처리 플랫폼을 EMR on EKS 로 도입하면서, 쿠버네티스 운영도 함께 하고 있다.

 

요즘엔 Spark 개발보다는 쿠버네티스 엔지니어링을 더 많이 하는 것 같아서, 정체성의 혼란이 올 때도 있지만..

 

나의 본질은 데이터 엔지니어링에 있다고 믿는다.

 

지난번에 한 번 정리한 글이 있는데, 새로운 명령어와 함께 다시 올려본다.

 

argoCD 사용자는 kubectl 을 쓸 일이 거의 없겠지만, 난 두개를 다 쓰고 있는 입장에서 kubectl 로 리소스를 직접 다루는게 더 재미있는

 

편이다.  아무튼.. 누군가에게 도움이 되길 바라며

 

 

1.  리소스 상태 및 로깅 관련

  • 쿠버네티스 클러스터에서 발생하는 이벤트 로깅, pod , Node 의 리소스 상태 변화 순서로 확인하는게 좋다.
기본 이벤트 확인
$ kubectl get events

특정 네임스페이스 이벤트 확인
$ kubectl get events -n <namespace>

실시간 이벤트 감시
$ kubectl get events --watch

출력 형식 지정
$ kubectl get events -o wide


특정 Pod 상세 정보 확인
$ kubectl describe pod <pod-name>

네임스페이스 지정
$ kubectl describe pod <pod-name> -n <namespace>

모든 Pod 정보 확인
$ kubectl describe pod



Pod Logs (Pod 로그 확인)
$ kubectl logs <pod-name>

특정 컨테이너 로그 확인
$ kubectl logs <pod-name> -c <container-name>

실시간 로그 스트리밍
$ kubectl logs <pod-name> -f


시간별 로그 필터링
$ kubectl logs <pod-name> --since=1h



기본 노드 목록
$ kubectl get nodes

자세한 정보 포함
$ kubectl get nodes -o wide

JSON/YAML 형식으로 출력
$ kubectl get nodes -o json

노드 내 모든 리소스 정보 확인
$ kubectl describe node

 

 

 

2. 헬름 차트 관련 (helm chart) 

  • 헬름을 이용한 서비스 설치도 많이 하게 되는데, 기본 개념을 정리하면 다음과 같다
    • 헬름 (helm) : 쿠버네티스 패키지 매니저
    • 차트 (chart) : 쿠버네티스 리소스를 하나로 묶은 템플릿 (yaml 의 묶음)
  • 헬름을 이용해 차트 기반으로 서비스를 배포할때 다음 용어도 알아두면 좋다
    • 릴리즈 : 특정 차트를 클러스터에 설치한 인스턴스
    • 레포지토리: 차트를 저장하고 배포하는 저장소
  • 순서는 사용자가 정의해둔 차트에 value 값을 custom 하게 설정하고, 레포지토리를 추가한 다음. 릴리즈 버전과 함께 설치하면 된다.

레포지토리 추가
$ helm repo add <repo-name> <repo-url>

레포지토리 목록 확인
$ helm repo list

레포지토리 업데이트
$ helm repo update

차트 검색
$ helm search repo <keyword>

기본 차트 설치
$ helm install <release-name> <chart-name>

특정 네임스페이스에 설치
$ helm install <release-name> <chart-name> -n <namespace>

value 파일로 커스터마이징
$ helm install <release-name> <chart-name> -f values.yaml

직접 값 지정으로 설치
$ helm install <release-name> <chart-name> --set key1=value1,key2=value2


설치된 릴리즈 확인
$ helm list


차트 업그레이드
$ helm upgrade <release-name> <chart-name>

릴리즈 히스토리 확인
$ helm history <release-name>

롤백 
$ helm rollback <release-name> <revision>

릴리즈 삭제
$ helm uninstall <release-name>

 

helm chart 조회는 아래에서 하면 된다.

https://artifacthub.io/

 

Artifact Hub

Find, install and publish Cloud Native packages

artifacthub.io

 

 

 
반응형
반응형


빅데이터 환경에서 다양한 애플리케이션, 플랫폼 도구들을 실험할 때 데이터는 항상 필요하다.

실제 운영 환경의 데이터를 활용하면 좋겠지만, 보통은 개발/스테이징/운영의 환경을 나눠놓기 때문에, 데이터도 개발용 데이터가 필요할 때가 있다.

아래 간단하게 yaml 포맷으로 데이터 스키마를 정의하면, 명령어 실행으로 데이터를 출력해주는 간단한 툴을 만들었다.

누구나 가져다 쓸 수 있고, 수정해서 쓸 수 있다.

사실 이미 공개된 오픈 소스 제네레이터는 많지만, 파티셔닝된 데이터출력이라던지 데이터 포맷을 스스로 정의해줘야 하는 특수한 경우를 고려해서 그냥 만들어봤다.

 

만들어볼 줄 도 알아야 하니까.

 

 

1. BigdataSimpleGenerator 소스코드 

https://github.com/jaysooo/bigdata-simple-generator

 

 

2. 빠른 시작

A.데이터 스키마 정의하기

  • 기본적으로 int, string, float( 자리수 포함), 범위, 옵션 리스트 를 정의할 수 있다.
  • S3 , 로컬을 지원한다.
  • 레코드 개수를 정의할 수 있다.
data_spec:
  table_name: stg-event-dummy
  records: 1000
  file_format: csv # csv, parquet, json
  file_prefix: data
  destination: /YourPath/sample_data
  # destination: s3://yourbucket/event-data/
  partition_by:
    name: partition_key
    range:
      min: "2025-01-01"
      max: "2025-01-10"
  table_schema:
    - name: id
      type: int
      prefix: id_
    - name: device_name
      type: string
      prefix: device_
    - name: device_type
      type: string
      range:
        items:
          - "iphone"
          - "galaxy"
          - "xiaomi"
          - "huawei"
    - name: event_time
      type: timestamp
    - name: event_type
      type: string
    - name: event_rate
      type: float
      range:
        min: 0 
        max: 1
      decimal_point: 2

B.실행하기

$ python data-generator.py --config config.yaml --producer pyarrow

 

3. 출력 데이터

예제 데이터

 

4. 참고

  • pyarrow dataframe 으로 데이터를 생산하기 때문에, 데이터량에 따라 머신의 메모리 가용 공간을 확인한다.
  • 인터페이스만 구현한다면 데이터 출력 모듈을 직접 구현해서 출력할 수 있다. (pyspark, pandas 등 )

 

 

 
반응형
반응형

오랜만에 포스팅을 하는 것 같다.

 

오늘은 GPT 를 이용해 간단한 동영상 쇼츠 제작 방법을 소개해보려고 한다.

 

여러 방법들이 있을 거고 정답은 없는 것 같다. 나는 X에서 최근 공개한 Grok 과 openAI 사의 ChatGPT 를 함께 이용해서 만들었다.

 

절차부터 얘기하면 다음과 같다.

 

1) grok 을 이용해 대본만들기

 

2) chatGPT 의 영상 제작 모델에 대본을 프롬프트로 입력해 영상 제작을 의뢰한다.

 

 

Grok (https://x.ai/) 으로 브라우저를 옮겼다. 그리고 나는 대본을 만들어달라는 프롬프트를 아래 처럼 주문했다.

 

Grok 화면

답변을 복사하고 chatgpt (https://chatgpt.com/) 로 브라우저를 넘겨보자.

GPT 탐색 을 눌러보면 video maker 와 관련된 여러 모델들을 검색할 수 있는데, 나는 1위에 랭크되있는 모델을 택했다.

 

 

 

나는 데이터엔지니어기 때문에, apache airflow 를 30초 로 소개하는 영상을 주문해보았다.

 

대본을 프롬프트에 입력하고 영상 제작을 주문하면 연계된 서비스 페이지로 링크를 하나 보내줄 것이다.

 

링크를 타고 들어가면, 영상을 제작하는 과정을 조금 기다려야 한다.

 

물론 !!! 자동으로 생성된 영상은 한 20% 정도 부족해보인다.

 

그래서 동영상을 편집하는 모드에서 자막과 영상을 업로드할 수도 있다. (여기서 노가다가 시작되지 않을까.. ) 

 

퀄리티가 아주 만족할 만한 수준은 아니지만, 그래도 짧은 시간에 제작한 것 치곤 괜찮다.

 

AI 가 제작해준 영상을 아래 업로드하면서 마무리한다.

(아.. 용량 제한으로 영상 업로드가 안되네.. ) 

 

 

참고) 프롬프트

**** GROK Prompt ****

이제부터 너 유튜브 대본을 작성하는 작가이자 데이터 엔지니어인 제인이야 

난 한국에서 유튜브 채널을 만들어 영상을 올릴 계획이야. 

이번에는 apache airflow 를 소개하는 영상을 만들거야

다음 요구사항을 만족하도록 대본과 정보를 만들어줘

- 영상 시간은 30초야
- airflow 의 소개와, 기능 그리고 장점으로 구성해줘
- airflow 를 사용자에게 홍보하는 느낌으로 만들어줘



**** ChatGPT Prompt ****

이제부터 너 유튜브 대본을 작성하는 작가이자 데이터 엔지니어인 제인이야

난 한국에서 유튜브 채널을 만들어 영상을 올릴 계획이야.

이번에는 apache airflow 를 소개하는 영상을 만들거야

다음 대본을 줄테니 영상을 제작해줘

대본 (30초)

"안녕하세요! 오늘은 데이터 엔지니어링의 필수 도구, Apache Airflow를 소개해드릴게요. Airflow는 복잡한 데이터 파이프라인을 쉽게 관리하고 스케줄링할 수 있는 오픈소스 플랫폼이에요. DAG를 통해 작업의 의존성과 순서를 명확히 정의하고, AWS, Google Cloud 같은 서비스와도 간편하게 연동할 수 있죠. 확장성이 뛰어나고, 활발한 커뮤니티 지원으로 계속 발전 중이에요. 게다가 직관적인 UI로 워크플로우를 한눈에 모니터링할 수 있어요. 데이터 작업을 효율적으로 관리하고 싶다면, Airflow를 꼭 사용해보세요!"

정보 요약

소개: Apache Airflow는 데이터 파이프라인을 관리하고 스케줄링하는 오픈소스 플랫폼입니다.

기능: DAG(Directed Acyclic Graph)로 작업 흐름을 정의하고, 다양한 서비스(AWS, Google Cloud 등)와 유연하게 통합됩니다.

장점: 확장성이 뛰어나고, 커뮤니티 지원이 활발하며, UI로 워크플로우를 시각적으로 관리할 수 있어 사용자 친화적입니다.
 
반응형

+ Recent posts