728x90

IT 124

[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 (1)

[Airflow] Airflow DAG Serialization (직렬화)

직렬화(Serialization) Airflow의 DAG 직렬화를 알아보기 전에, 직렬화가 무엇인지부터 정리해보려고 합니다. 우리가 어떤 객체 데이터를 가지고 저장하거나 통신한다고 가정해보겠습니다. 실제 실행중인 프로세스상에서 데이터는 연속적이지 않게 메모리에 퍼져 있습니다. 물론 프로세스를 메모리에 연속된 주소로 할당하는 기법도 있긴 하지만, 단편화 문제도 있고, 가장 크게는 메모리 크기를 넘어서는 프로세스는 실행할 수 없다는 치명적인 문제가 있어서 사용하지 않고 있으니 요 친구는 논외로 하겠습니다. 그러니 앞서 말씀드린 것처럼, 객체 데이터는 비연속적으로 퍼져 있다고 볼 수 있습니다. 이런 객체 데이터를 가지고 통신하거나 저장하려면, 그 객체 데이터 그대로를 사용해서는 불가능합니다. 메모리 주솟값 등..

IT/Airflow 2022.05.08

[Kubernetes] Kubernetes Study: "Pod - Lifecycle"

Prologue 본 포스트는 인프런 쿠버네티스 스터디 그룹에서 진행하는 스터디 자료의 일환으로 작성하였습니다. 기본적으론 [대세는 쿠버네티스] 강의를 보고 내용을 정리합니다. 그리고 제 경험이나 이해를 곁들여 포스트를 작성했습니다. 그동안 공식 문서나 블로그 포스트, CKA 강의 등 다양한 경로로 쿠버네티스를 익혀왔지만, 한국어로 잘 정리된 강좌를 한번 듣고 깔끔하게 다듬어보는 시간을 가지면 좋겠다는 생각이 들었습니다. 강의와는 조금 다를 수 있지만, 쿠버네티스 공식 문서를 보고 내용을 정리해보겠습니다. 이번 포스트에선 "Pod - Lifecycle" 강의를 듣고 정리한 포스트입니다. Pod 라이프사이클 사람이 태어나서, 성장하고, 다시 자연으로 돌아가는 과정처럼, 파드에게도 정의된 라이프사이클이 있습니..

IT/Kubernetes 2021.08.01

[DevOps/번역글] Helm vs Kustomize: 어떻게 배포할 것인가?

Prologue 패키징 작업을 하다보면 Helm과 Kustomize를 사용하는 예제들을 종종 찾아볼 수 있습니다. 그러나 정작 둘의 차이점은 명확하게 알지 못한 채, "그냥 클러스터에 패키지 배포 쉽게 해주는 녀석 아니야?"라는 추상적인 개념만 갖고 있다면, 오늘 이 글이 도움이 되지 않을까 싶습니다. 과연 Helm, Kustomize는 무엇이고 어떤 차이점이 있는 걸까요? 그리고 둘 다 비슷한 역할을 한다면, 무엇을 사용하는 것이 더 좋을까요? 오늘 포스트에선 이 두 엔진을 비교해본 좋은 글을 소개합니다. Helm vs Kustomize: How to deploy your applications in 2020? 본 포스트는 위 글을 읽고 번역한 글임을 밝힙니다. Introduction 한 때, Helm..

IT/DevOps 2021.07.24

[Kubernetes] Kubernetes Study: "컨트롤러 - DaemonSet, Job, CronJob"

Prologue 본 포스트는 인프런 쿠버네티스 스터디 그룹에서 진행하는 스터디 자료의 일환으로 작성하였습니다. 기본적으론 [대세는 쿠버네티스] 강의를 보고 내용을 정리합니다. 그리고 제 경험이나 이해를 곁들여 포스트를 작성했습니다. 그동안 공식 문서나 블로그 포스트, CKA 강의 등 다양한 경로로 쿠버네티스를 익혀왔지만, 한국어로 잘 정리된 강좌를 한번 듣고 깔끔하게 다듬어보는 시간을 가지면 좋겠다는 생각이 들었습니다. 강의와는 조금 다를 수 있지만, 쿠버네티스 공식 문서를 보고 내용을 정리해보겠습니다. 이번 포스트에선 지난 시간에 이어 컨트롤러의 마지막 내용. "컨트롤러 - DaemonSet, Job, CronJob"을 다뤄봅니다. DaemonSet 데몬셋은 모든(또는 일부) 노드가 파드의 복제본을 실..

IT/Kubernetes 2021.07.12

[Kubernetes] Kubernetes Study: "컨트롤러 - Deployment (feat. Canary)"

Prologue 본 포스트는 인프런 쿠버네티스 스터디 그룹에서 진행하는 스터디 자료의 일환으로 작성하였습니다. 기본적으론 [대세는 쿠버네티스] 강의를 보고 내용을 정리합니다. 그리고 제 경험이나 이해를 곁들여 포스트를 작성했습니다. 그동안 공식 문서나 블로그 포스트, CKA 강의 등 다양한 경로로 쿠버네티스를 익혀왔지만, 한국어로 잘 정리된 강좌를 한번 듣고 깔끔하게 다듬어보는 시간을 가지면 좋겠다는 생각이 들었습니다. 강의와는 조금 다를 수 있지만, 쿠버네티스 공식 문서를 보고 내용을 정리해보겠습니다. 이번 포스트에선 지난 시간에 소개해드린 ReplicaSet에 이어 "컨트롤러 - Deployment"를 다뤄봅니다. Deployment 디플로이먼트는 지난 시간에 소개드린 ReplicaSet을 추상화한 ..

IT/Kubernetes 2021.07.11
728x90
반응형