전체 글 162

[부동산 공화국] 1장 읽고

"부동산 공화국 생존 지식" 1. 우리나라의 아파트 수요가 높아지는 것은 어찌보면 당연한 일이었다. - 인구 밀도가 높으면서 우리나라 지형상 평야가 적기 때문에, 넓은 부지를 1인의 거주지로 사용하는 것에는 한계가 있기 마련 - 건설사도 아파트를 다른 주거형태에 비해 더 많이 공급하는 편(공급이 많은 것도 수요에 영향을 미치게 되어 있다) - 아파트 단지는 꽤나 쾌적하게 되어 있다. 숲세권, 초품아, 스품아.. 거기에 보안도 일반 주거 형태에 비해 높은 편 - 환금성도 좋은 편임 2. 인구는 줄어들텐데, 그럼 집값은 폭락하는 거 아니냐? - 단순히 생각해보면 그 말이 맞음. 인구가 줄어듦 -> 집에 대한 수요가 줄어듦 -> 주택 가격 하락 - 그러나 반대론자의 의견엔 인구수가 아닌 "가구수"를 봐야 한다..

[Wookiist] 글또 7기 활동을 회고해보자

벌써 글또 7기 활동이 마무리 되었네요. 자취를 시작했던 첫 날 밤, 책상이 아직 도착하지 않아 침대에 앉아 글또 OT에 참석했던 걸 생각해보면.. 꽤 시간이 많이 지난 거 같아요. 약 반 년이라는 시간동안 저는 무엇을 생각했고, 무엇을 느꼈으며, 어떻게 변했을까요? 글또 7기 활동을 마무리하는 글을 작성해보았습니다. 7기 활동하면서 썼던 글 7기 활동하면서 작성했던 글의 제목을 나열해보면 이렇네요. 총 10편의 글을 작성했고, 이 중에 7편의 글이 Airflow에 관한 글이었어요. 확실히 이번 활동 기간동안 Airflow 관련해선 꽤 많이 정리한 거 같네요. [Airflow] Airflow DAG Serialization (직렬화) [Airflow] Sensor를 정리해보자 [Airflow] Dynam..

욱이야기/욱이 2022.10.15

[Airflow] Airflow 2.4.0에선 무엇이 달라졌을까?

본 글은 Ash Berlin-Taylor가 작성한 ‘Apache Airflow 2.4.0: That Data Aware Release’ 글을 읽고 번역한 글입니다. 중간 중간에 필요한 제 사견이나 첨언도 들어가 있으니 참고 부탁드립니다. Apache Airflow 2.4.0에는 650개 이상의 유저 커밋, 그리고 총 870개 이상의 커밋이 포함되어 있습니다. 이번 버전에는 46개의 새로운 기능, 39개의 개선 사항 그리고 52개의 버그 픽스가 포함됩니다. Data-aware scheduling (AIP-48) 정말 대단한 기능입니다. 이제 Airflow는 데이터셋을 업데이트하는 다른 task를 기반으로 DAG을 스케줄링할 수 있게 되었습니다. 이게 정확히 무슨 뜻일까요? 이 기능으로 인해 DAG 작성자들..

IT/Airflow 2022.10.15

[Airflow] Backfill과 Clear를 정리해보자

Backfill 데이터 파이프라인을 운용하다보면, 이미 지난 날짜를 기준으로 재처리를 해야 하는 일이 왕왕 있습니다. 백필은 바로 이 재처리 작업을 의미합니다. 단어의 의미 그대로 ‘메우는 작업'이라고 생각하면 될 듯합니다. Backfill을 하게 되는 경우 백필 작업을 하는 경우는 나름 명확합니다. 다음과 같은 사례가 있습니다. 버그가 있거나 어떤 이유로 로직이 변경되었을 때 전체 데이터를 새로 말아주어야 할 때 컬럼 등의 메타 데이터가 변경되었을 때 이를 반영하기 위한 append 성의 작업이 필요할 때 이외에도 과거의 데이터를 재처리하고자 하는 니즈가 있다면 백필을 먼저 떠올리면 됩니다. Airflow Backfill Airflow를 이용하고 있다면 몇 가지 방법으로 백필 작업을 수행할 수 ..

IT/Airflow 2022.09.18

[Airflow] PythonSensor에 pod override 옵션 적용하기

PythonSensor & Kubernetes Excutor 최근에 Kubernetes Executor를 사용할 때 PythonSensor의 pod_override 옵션을 어떻게 적용해야 하나 하는 문제로 헤맸던 적이 있습니다. 이에 대해 간단하게 정리해보았는데요. PythonOperator 문서를 가보면, pod spec을 변경하는 방법을 소개한 문서가 존재합니다. 거기다 이렇게 executor_config를 변경한 예제 코드도 있습니다. 문제는 PythonSensor 스펙을 소개한 문서 어딜 봐도 PythonOperator가 제공하는 executor_config가 없었습니다. 특히 PythonOperator가 상속한 BaseOperator를 보면 executor_config 필드가 있었지만, Base..

IT/Airflow 2022.09.04

[Hadoop] WebHDFS와 HttpFS는 무엇이 다른걸까?

Intro 얼마전, 회사에서 MLE 분이 HDFS에서 뭔가 다운로드 받고 싶으시다고 WebHDFS 경로를 문의주셨습니다. 그런데 저희 시니어 팀원 분께서 WebHDFS가 아닌 HttpFS를 쓰시도록 권고를 해주시길래, 어떤 차이가 있는걸까.. 생각해보게 되었습니다. 단순한 궁금증이긴 하지만, 이번 기회에 정리해보고자 합니다. WebHDFS와 HttpFS. 과연 무엇이 다른걸까요? WebHDFS WebHDFS는 HDFS 클라이언트가 Hadoop 바이너리를 설치하지 않더라도, 다양한 언어에서 HDFS에 접근할 수 있도록 REST 형태로 개발된 API입니다. Hortonworks에서 개발했으며, Hadoop 에코시스템 외부에서 동작하는 애플리케이션이 HDFS에 무언가 생성하고 쓰고, 변경하는 작업을 허용해줍니..

IT/Hadoop 2022.08.07

[Storage] Block Storage와 File Storage

Block Storage vs. File Storage 최근 Ceph 관련 장애를 겪으면서, 스토리지 개념에 대해 정리 해볼 필요성을 느꼈습니다. 대충, ReadWriteOnce로 쓸 때는 Ceph-Block 을 쓰면 되고, ReadWriteMany로 생성하고 싶을 땐, Ceph-Filesystem을 사용하면 된다는 것은 알겠지만, 왜 그런 것일까요? 오늘 글에서는 둘은 어떻게 다르고, 어떤 특징을 가지고 있는지 알아보겠습니다. File Storage File Storage의 역사는 꽤 오래되었습니다. 그리고 유저들에게 가장 친숙한 스토리지 시스템이기도 합니다. 우리의 파일 또는 데이터에 이름을 붙여주고, 이걸 ‘폴더'에 저장합니다. 그리고 위 이미지에서 볼 수 있는 것처럼 파일에 접근할 때, 계..

IT/IT WIKI 2022.07.24

[Airflow] Pool

Pool Airflow가 동시에 실행하는 Task가 너무 많을 경우, 시스템에 부하를 줄 수 있습니다. Pool은 이러한 문제가 발생하는 것을 방지하기 위해, 해당 Pool을 사용하는 DAG들에서 병렬로 실행되는 Task의 개수를 제한하기 위해 도입되었습니다. Pool을 사용하면, Task Set에 대한 병렬 처리를 제한하여 각 Task가 실행되는 시기를 세밀하게 제어할 수 있습니다. 이 내용에 대해서는 마지막에 usecase를 보면서 설명드리겠습니다. 특히, 특정 Task를 수행하는 병렬 Task의 수를 제한하기 위해 자주 사용합니다. 예를 들어, 동일한 API Endpoint나 DB를 찌르는 작업일 때, 또는 Kubernetes 클러스터의 GPU 노드에서 GPU 할당을 제어하기 위해 사용합니다. 기본..

IT/Airflow 2022.07.09

[Airflow] Dynamic Task Mapping (동적 태스크 매핑)

Introduction 최근 사내에서 사용하는 몇몇 Airflow 클러스터 관리를 담당하게 되면서 Airflow 2.3.0으로의 버전업을 진행하게 되었습니다. 사실 이전에 다뤘던 두 포스트도 그 일환으로 작성했던 내용이네요 ㅎㅎ Airflow 2.3.0 업그레이드에는 나름 큰(?) 변경 사항과 추가 사항이 있습니다. 그동안 사용해왔던 TreeView를 대체하는 GridView의 도입, LocalKubernetesExecutor의 도입, 메타데이터 DB에 쌓여만 가던 오래된 데이터를 지워주는 airflow db clean 명령어 등, 각각 하나의 글로 작성해도 충분할만큼 중요한 신규 기능, 변경점들입니다. 그중에서도 가장 주목 받았던 신규 기능이라고 한다면, Dynamic Task Mapping 을 꼽을 ..

IT/Airflow 2022.06.06

[Airflow] Sensor를 정리해보자

Overview 최근 들어 Airflow를 적극적으로 다루는 일이 많아지다보니, 여러 요구사항을 만나게 되는데요. Airflow 자체적으로 제공하지 않는 스케줄링 처리, 특정 파일 및 조건을 만족할 때까지 대기하는 구간 등을 정의하게 되었습니다. 전자는 간단한 Operator를 구현해, 정공법은 아니지만 Workaround 느낌으로 파훼했고, 후자는 이번에 알아볼 Sensor로 해결할 수 있었습니다. Apache Airflow Sensor는 어떤 사건이 발생할 때 까지 기다리도록 설계된 특수한 종류의 오퍼레이터입니다. 실행된 Sensor는 특정 조건을 만족하면, 성공으로 마킹되며 이후 다운스트림 태스크를 실행합니다. 적절하게 사용되면, DAG를 좀 더 Event-Driven하게 작성할 수 있도록 도와줍니..

IT/Airflow 2022.05.22