일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- HDP
- jupyter
- SlackWebhookOperator
- Lambda architecture
- hadoop
- python
- MapReduce
- ambari
- Kafka
- slack app
- airflow
- Scala
- HDFS
- HIVE
- Example DAG
- yarn
- Windows
- re
- docker
- 람다 아키텍처
- slack
- 정규표현식
- 빅데이터
- Namenode
- NoSQL
- HBase
- execution_date
- LDAP
- java
- Service
- Today
- Total
목록BigData (73)
IT 삽질기

ISR(In-Sync-Replicas)이란? ISR은 kafka 리더 파티션과 팔로워 파티션이 모두 싱크가 된 상태를 말하는데, 리더 파티션과 팔로워 파티션에 대해 간단하게 알아보도록 하자. 리더 파티션과 팔로워 파티션 Kafka에서는 복제 계수라는 것이 존재하는데, 이는 Hadoop에서 사용하는 복제 계수와 비슷한 개념으로 데이터의 유실을 방지 하기 위해 사용되는 개념이다. 복제 계수가 2인 kafka topic은 리더 파티션 1개와 팔로워 파티션이 1개 생성이 되며, 데이터를 전달받았을 때 각각 아래의 역할을 수행한다. 리더 파티션 리더 파티션은 producer로부터 데이터를 전달받아 저장하는 작업을 진행 팔로워 파티션 복제 계수를 맞추기 위해 리더 파티션으로부터 데이터를 전달받아 동기화 그림을 통해..

Kafka 보관 주기 설정 오늘은 Kafka 보관 주기를 설정하는 방법에 대해서 알아보자. Kafka에서 데이터를 삭제하지 않으면, 지난 데이터를 다시 가지고 올 수 있지만 그에 따라 디스크 사용량과 카프카 운영 비용 역시 증가하기 때문에 적절하게 설정해주는 것이 좋다. Kafka 보관 주기를 설정하기 위해서는 kafka/config/server.properties에서 설정 내용을 변경하면 된다. 먼저 기본 설정값을 파일과 공식 문서에서 확인해보도록 하자. 설정 파일에 지정되어 있는 값은 위와 같으며, 공식문서를 통해 하나씩 살펴보도록 하자. log.retention.hours 로그 파일을 삭제하기 전 보관하는 보관 주기를 설정하는 옵션으로 기본값으로 168(7일)로 지정되어 있다. hours 단위로 지..

Airflow Variables란? Variables은 Airflow 전역에서 사용할 수 있는 값을 미리 저장해두고 DAG에서 공통적으로 사용할 수 변수를 말한다. WebServer UI에서 쉽게 설정이 가능하다. Variables는 key-value 형식으로 구성되며, key값을 이용해 value를 사용하는 방식이다. 공식 문서는 아래와 같이 2개의 문서로 정리되어 있다. https://airflow.apache.org/docs/apache-airflow/stable/concepts/variables.html https://airflow.apache.org/docs/apache-airflow/stable/howto/variable.html Airflow Varialbes 설정하기 Webserver에서 ..

Airflow dag_run.conf Airflow dag_run.conf 사용법에 대해 알아보도록 하자. dag_run.conf는 dag를 trigger dag를 사용할 때, 나오는 옵션과 같은 것인데 Dag list나 Dag view에서 볼 수 있다. Trigger Dag를 클릭하면 아래와 같은 화면으로 넘어간다. Trigger DAG를 사용하는 경우 Optional하게 원하는 데이터를 JSON 형식으로 전달할 수 있는데, 사용 방법은 이전 포스팅에서 설명한 Jinja template 방식을 따른다. 2021.05.19 - [BigData/Airflow] - Airflow에서 Jinja template 사용하기 Trigger DAG의 아래 부분에도 친절하게 설명되어 있다. {{ dag_run.conf..

Hadoop에서 MapReduce의 동작방식에 대해서 알아보도록 하자. 먼저 MapReduce에 대해 간단히 알아보도록 하자 MapReduce - 대용량의 데이터 처리를 위한 분산 프로그래밍 모델 - 분산 컴퓨팅 환경에서 데이터를 병렬로 분석할 수 있음 - Map / Reduce라는 2개의 taks로 구성 - Map는 분산된 데이터를 연관성 있는 데이터들로 분류하거나 연산을 하는 작업으로 (Key, Value) 쌍을 가짐 - Reduce는 Map에서 나온 결과 데이터에서 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업 Map의 output가 Reduce의 input이 된다. Hadoop 분산 시스템에서 이런 MapReduce작업이 어떻게 이루어지는 알아보도록 하자. 먼저 Map의 input값에 대해..

Airflow에서는 Jinja2 template를 내장하고 있어 이를 활용할 수 있는데, Jinja2 template에 대한 자세한 내용은 Jinja Document를 참고하기 바란다. https://jinja.palletsprojects.com/en/3.0.x/ Jinja2 template를 활용할 수 있는 방법에는 어떤것이 있을까 Airflow를 이용할 때, batch job을 실행하는 경우 현재 날짜에 대한 정보가 필요할 수 있다. 예를 들어 글 작성 날짜인 2021-05-19 라는 값을 Hive Query에 이용할 수 있을 것이다. 이런 경우 어떻게 해야할까 Dags에 직접 입력하는 방법도 있지만 그렇게 동작시키는 경우 매번 값을 바꿔 실행해주어야 한다. 이런 경우 Jinja template와 A..

sqoop이란? sqoop은 일반적으로 사용하는 RDBMS(MySQL, Oracle)와 HDFS(Hive, HBase)간 데이터를 전송하기 위해 사용하는 툴로 HDFS 저장소를 기준으로 import(RDBMS -> HDFS), export(HDFS -> RDBMS) 기능을 제공하며, MapReduce방식으로 동작한다. 특별한 설정이 없는 경우 text file형식으로 HDFS에 적재되지만, 설정을 통해 sequence file, avro, parquet에 대한 형식을 지원한다. 여기서는 sqoop의 import와 export에 대해서 알아보도록 하자 Sqoop import 먼저 sqoop import 과정에 대해 알아보자. sqoop import는 아래와 같이 동작한다. 순서에 따라 살펴보도록 하자. (..
HBase에서 데이터를 읽고 쓰는 과정에 대해서 알아보도록 하자. HBase 데이터 쓰기 HBase에서 데이터를 저장할 때는 두 가지 장소에 저장하게 되는데, WAL(Write Ahead Log)와 Memstore이다. WAL에 대한 내용은 아래의 글을 확인하기 바란다. 2021.05.14 - [개발] - WAL(Write-ahead logging)란 ? 위의 두 가지 방법을 활용하여 정상적으로 쓰기 과정이 끝나는 것은 WAL과 Memstore에서 모두 변경이 일어난 시점이 된다. HBase에 데이터 적재 요청이 오면 먼저 적절한 region server을 찾게 된다. region server를 찾아 commit log를 추가 하고 메모리 내의 Memstore에 추가되게 된다. Memstore에 저장되어..