Airflow 오버뷰
platform/airflow 2022. 10. 3. 00:35

해당 글은 Airflow 공식문서 중 Overview 내용을 번역하여 공부한 내용입니다. 오역이나 잘못된 내용이 있을 경우 댓글 부탁드리겠습니다. Airflow란? Airflow란 Workflow를 빌드하고, 실행하는 것을 도와주는 플랫폼이다. 최근 ETL 파이프라인을 만드는 데 가장 핫한 프레임워크라고 할 수 있다. Airbnb에서 시작되어 아파치 오픈소스 프로젝트로 관리되고 있다. Workflow는 DAG로 표현되며, DAG는 종속성과 데이터의 흐름을 고려하여 정렬된 일련의 Task라는 개별 작업들로 구성된다. 위 그림과 같이 DAG는 여러 Task들로 구성된다. Task 간의 종속성과, 작업 실행/재실행 순서 및 분기 처리까지 지정할 수 있다. Airflow 아키텍처 Airflow 설치 시 일반적으..

HDFS Balancer - Namespace 페더레이션 되어있을 때
platform/hadoop 2022. 4. 18. 18:30

신규로 데이터 노드를 추가하였을 경우, 혹은 디스크 교체로 인해 특정 노드의 데이터가 비게 될 경우 Hadoop에서는 이를 균형 잡히게 만들기 위해 Balancer 기능을 제공한다. 네임 스페이스가 페더레이션 되어있을 경우, balancer 수행 시 다중 네임 스페이스들에 모두 밸런싱 작업이 수행되도록 변경이 되었다. 따라서 특정 hdfs 네임스페이스만을 밸런싱 하고 싶을 경우에 해당 네임스페이스 만을 포함하는 core-site.xml, hdfs-site.xml 을 따로 빼고, 해당 config를 물고 들어갈 수 있게끔 실행해준다. hadoop hdfs에 권한이 있는 유저로 실행해주어야 한다. 특정 폴더에 core-site.xml 과 hdfs-site.xml을 복사하여 생성해주고, 위 주요 속성 값들을 ..

file타입의 buffer path에 ${tag} 사용할 때 buffer 경로에 ${tag} 그대로 남는 이슈
platform/fluentd 2022. 4. 1. 11:50

fluentd GCS 플러그인을 설정을 예로 들어보겠다. match로 보낼 로그들의 버퍼 파일이 섹션 안의 path 경로로 쌓이게 된다. path 경로를 보면 ${tag[1]} 로 되어있는데, tag가 type.** 형태로 들어오게 되는데 그중 ** 에 들어갈 태그로 구분을 하겠다는 의미이다. type.fruit라고 태그가 설정되었다면 ${tag[1]}에는 fruit이 들어가게 된다. 그래서 적재되는 buffer 파일이 /var/log/td-agent/buffer/fruit 아래에 적재될 줄 알았는데 그게 아니었다. 실제로 생성되는 buffer의 경로는 /var/log/td-agent/buffer/${tag[1]} 그대로 생성된다. 초큼.. 경로가 더러워서 이 방법밖에는 없는 것인가 문서를 확인해보니 중..

리밸런싱이 자주 일어나는 경우 - CommitFailedException에 대해
platform/kafka 2022. 3. 28. 01:24

에러 발생 상황 org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the configured max.poll.interval.ms, which typically implies that the poll loop is spending too much time message processing. You can address t..

Fluentd Buffer는 어떻게 동작하는가?
platform/fluentd 2022. 3. 4. 20:00

Fluentd에서는 match 태그 안에 buffer를 사용해서 output 목적지로 이동하기 전 일정 시간 저장할 수 있게끔 합니다. 이벤트 전송 중에 fluentd 에이전트가 이슈로 인해 종료되거나, output 목적지로 정상적으로 로그가 전송되지 못하는 경우 로그 수집에 문제가 생길 수 있는데, 이러한 문제를 해결하기 위한 메커니즘입니다. 해당 글에서는 이전 글에 이어서 Fluentd 공식 문서에서 설명하고있는 Buffer의 동작 방식을 적어보고자 합니다. Fluentd의 각 플러그인의 진행 도식을 나타내면 다음과 같습니다. 전체적인 순서는 Input 플러그인으로부터 들어온 이벤트들이 router를 통해 각 output 플러그인으로 전달되는 순서입니다. Output plugin에서의 Buffer 모..