본문 바로가기

Tech

(42)
AWS Window Server 인스턴스 생성 시 초기 route table 상태 AWS EC2(Window server)에서 사용하는 SDK 관련 IP (ec2 생성시 자동 등록되는 route들) 169.254.169.123 : 인스턴스에 대한 시간 설정 관련 169.254.169.249 : ec2launch 버전 기록 (1.3.2000430.0 버전 이후 route 추가하도록 추가됨) 169.254.169.250 : ec2config 관련 169.254.169.251 : ec2config 관련 169.254.169.253 : VPC용 DNS 서버 관련 169.254.169.254 : 인스턴스 메타데이터 검색 관련 인스턴스 생성시, 위처럼 초기화(셋팅)이 되므로, 만약 윈도우 서버로 사용하고 있는 ec2의 AMI를 다른 VPC or Subnet에서 사용하게 된다면, 변경된 subne..
[Airflow] ValueError: unsupported pickle protocol: 5 Airflow를 운영하다가 생긴 에러중에 하나이며, 어떻게 조치했는지 기록한다. 내가 운영하는 Airflow의 환경이다. helm chart version: 1.6.0 (official chart) - airflow version : 2.3.0, python version 3.7 airflow worker version : 2.3.2-python3.8 EKS위에 airflow를 구축하고 kubernetes executor로 운영 중이다. 구축하는 과정에서, helm chart 1.6.0 (official chart)를 사용해서 설치했고, worker의 경우는 image를 별도로 분리하여 2.3.2-python3.8로 사용하고 있었다. 위 환경에서, triggerdagrun Operator를 사용하는 중에..
망분리 환경에서 td-agent webhdfs 플러그인을 활용하여 HDFS에 로그 저장하기 이 글을 쓰게된 이유는 회사 업무로 망분리 환경에서 데이터 파이프라인을 구축하는 업무를 하게되었다. td-agent (fluentd 래핑된 프로그램)으로 Hadoop HDFS에 access log를 저장하는 데이터 파이프라인 구축 업무였고, 구축하는 과정에서 발생한 문제와 왜 발생했는지 해결 내용을 공유하기 위해 작성했다. 망분리 환경에서 td-agent(fluentd) HDFS 간 파이프라인 설정할 때, 도움이 되었으면한다.! 대충 환경은 이러했다. td-agent 서버(물리) HDFS (물리) 간에 방화벽 정책으로 인해 allow 정책이 있지 않는 상태이며, all deny 상태. 자.. 파이프라인을 구축하는 과정에서 어떤 문제가 있었는지 먼저 설명하겠다. fluentd의 webhdfs 외부 플러그인..
naver deview 영상 목록 2017년 Day2, 3-4. 멀티테넌트 하둡 클러스터 운영 경험기 NAVER Engineering tv.naver.com 2018년 C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터 NAVER Engineering | C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터 tv.naver.com Druid로 쉽고 빠르게 빅데이터 분석하기 NAVER Engineering | Druid로 쉽고 빠르게 빅데이터 분석하기 tv.naver.com 네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB NAVER Engineering | 네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB tv.naver.com 2019년 대용량 멀티테넌트 시큐어 하둡 클러스터를 시..
Airflow 멀티테넌시 환경 구축하기 나 같은 쭈니어 데이터엔지니어가 Airflow 멀티테넌시 환경을 구축하게 될 때, 도움이 되고자 구축했던 경험을 글로 남겨 공유한다.! 회사에서 신규 프로젝트로 Airflow를 처음으로 사용하게 되었다. 공식 Airflow Helm Chart를 사용하여 AWS EKS 위에, Kubernetes Executor로 구축하였다. 구축한 Airflow에서 DAG 파일을 관리하기 위해, GitSync(GitLab)를 사용하게 되었는데, 이부분에서 여러명의 데이터 엔지니어가 DAG 파일을 생성, 작업 하기엔 conflict issue 등 여러 불편함이 생겼다. 이 불편함을 해소하기 위해서, 여러 회사들의 방법을 벤치 마킹 했고, 그 과정에서 발견한 대표적인 방법들은 아래와 같았다. - Line: https://en..
[Hadoop] hadoop 3.3.3 버전 docker로 설치하기 GitHub - kangprog/hadoop_cluster_tutorial: 하둡클러스터 튜토리얼 하둡클러스터 튜토리얼. Contribute to kangprog/hadoop_cluster_tutorial development by creating an account on GitHub. github.com 예전에 docker 형태로 구축했었던 hadoop을 가지고, 버전업데이트를 해보면서 hadoop 2.9.2 버전 → 3.3.3 버전 zookeeper 3.4.9 버전 → 3.8.0 버전 마주한 문제는 아래와 같다. zookeeper 설치 시 압축 파일명이 바꼈다. 3.4.9 버전에서는 zookeeper-$ZOOKEEPER_VERSION.tar.gz이였는데, 3.8.0 버전에서는 apache-zookee..
[Airflow] catchup, depends_on_past, wait_for_downstream airflow 스케줄러는 DAG File을 실행하기 위해서 DagRun 객체로 인스턴스화 시킨다. catchup catchup default는 True이다. catchup이 True이면 이전 execute date DAG 까지 다 실행한다. False일 경우 가장 최근의 execute date DAG만 실행한다. 예시로 말하자면, catchup이 True일 경우 test_dag 이라는 DAG File을 “0 0 * * *” 스케쥴 작업을 등록했다고 하자. test_dag은 매일 0시 0분에 작업이 실행될 것이다. test_dag을 등록한 날짜가 2022-01-01 02시라 했을 때, test_dag이 첫번째로 실행되는 시간은 2022-01-02 00시 00분 이다. (execute date) 그다음 두번..
[Airflow] Airflow 학습(3) DAG = Data PipeLine Operator = Task DAG을 하나 만들어보자. 먼저 DAG을 생성하기 위해 필요한 선언 부분이다. (이부분은 공통(common) py로 관리하면 좋을듯?) from datetime import datetime, timedelta from airflow import DAG default_args= { "owner": "airflow", #작업 생성자 "email_on_failure": False, #작업 실패시 알림을 받을 이메일 "email_on_retry": False, #작업 재시도시 알림을 받을 이메일 "email": "admin@localhost.com", "retries": 1, #작업 실패시 재시도 횟수 "retry_delay": timedelta(..