자기발전소140 Airflow 설치 및 구성 테스트 💡 Airflow : A platform to programmatically author, schedule and monitor workflows. 워크플로우를 프로그래밍 방식으로 작성하고, 스케줄링하고 모니터하는 플랫폼입니다. 여기서 프로그래밍 방식에 쓰이는 코드는 바로 파이썬 코드입니다. : Uses directed acyclic graphs (DAGs) to manage workflow orchestration. Tasks and dependencies are defined in Python and then Airflow manages the scheduling and execution. DAGs 라는 것을 통해 워크플로우 오케스트레이션을 관리합니다. DAG는 유향 비순환 그래프를 의미합니다. 0... 2023. 10. 26. Confluent for Kubernetes 삽질 기록 Kubernetes 클러스터도 구축했고 CFK 도 쉽게 설치했는데 Storage 프로비저닝 설정에서 계속 막히는 중.. 나중에 다 알고나면 이런 삽질을 왜 했을까 하는 시간을 갖기 위해서 삽질 기록 시작! 먼저 나는 local path provisioner 를 통해 동적 볼륨 프로비저닝을 테스트해보고자 한다. (https://github.com/rancher/local-path-provisioner) 이를 위한 Storage Class 를 배포하기 위해 프로비저닝 yaml 파일을 다운받았다. (stable 버전) curl -O https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.24/deploy/local-path-storage.y.. 2023. 10. 20. [Kafka] Idempotent Producer Idempotent Producer에 대하여 정리하는 글 참고: https://www.confluent.io/ko-kr/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/ Idempotent producer란 : 프로듀서로부터 들어오는 데이터가 카프카에 "정확히 딱 한번"만 쓰여지게 한다. 1. Exactly-once is a really hard problem "정확히 한 번 전송" 의 구현이 왜 어려운가하면, 딱 한 사이드에만 무언가를 설정해서 구현할 수 있는 것이 아니고 카프카 메세징 시스템과 클라이언트 어플리케이션 간에 cooperate가 되어야 EOS (Exactly once semantics) 가 가능하기 때문이다... 2022. 4. 10. [Linux] Java 버전 변경 ( 8 -> 11) java 버전 변경 (Linux Centos 7) 1. 자바 버전을 변경하게 된 계기 자바 8 기반으로 돌아가고 있는 카프카 클러스터에 대해 google cloud storage source connector를 기동시키자 다음과 같은 에러를 만났다. ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to start connector 'GCSSourceConnector' (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1356) org.apache.kafka.connect.errors.ConnectException: Failed to start connector: GCSSo.. 2021. 8. 23. [Kafka] Twitter Producer 생성 📌 kafka 및 Confluent 를 공부하며 정리하는 글 Kafka를 활용하는 프로젝트 실행의 작은 기록1. 0. 프로젝트의 개요 [ Twitter - Producer - Kafka - Consumer - ElasticSearch ] 1. Twitter Developer Account 생성 아래 사이트에 접속하여 Twitter Developer account 를 생성한다. https://developer.twitter.com/en/apply-for-access Apply for access – Twitter Developers Apply for access. Get started with Twitter APIs and tools. All new developers must apply for a dev.. 2021. 8. 5. [Kafka] Client Bi-Directional Compatibility 📌 kafka 및 Confluent 를 공부하며 정리하는 글 Client-Kafka 양방향 호환성 Kafka 0.10.2 버전부터 client와 Kafka Broker 는 양방향 호환성 이라는 기능을 가지고 있다. 즉, 구버전의 Client는 최신버전의 Broker와 통신할 수 있거나 최신버전의 Client는 구버전의 Broker와 통신할 수 있다. Kafka Broker가 0.10.2 이상이라면, 어떤 구버전의 Client 를 사용해도 괜찮다! 하지만 가장 최신의 client library를 사용하는 것이 권장된다. 2021. 8. 3. [Kafka] Consumer Group: Rebalancing 📌 kafka 및 Confluent 를 공부하며 정리하는 글 Consumer Group 의 Rebalancing consumer group 프로세스가 하나 돌아가는 중에 하나를 더 추가로 돌려보자. 첫 번째 돌고 있던 consumer group 로그에서 "Attempt to heartbeat failed since group is rebalancing" 를 통해 rebalancing 시작을 알 수 있다. 이어서 Rejoining 이 발생하고, 파티션이 나누어 할당된다. "Adding newly assigned partitions: coding_topic-2" 로그를 통해 첫번째 consumer 프로세스는 2 파티션을 할당 받음을 알 수 있다. 대상 토픽의 파티션 3개를 두 개의 consumer 가 나누어.. 2021. 8. 2. [JAVA] 배열 개념 정리: 배열 복사 arraycopy 1. 기본 자료형 배열의 복사 System.arraycopy(복사할 소스 배열, 복사할 첫 위치, 복사 대상 배열, 붙여넣을 첫 위치, 복사할 요소 갯수(length)) 그런데, 위와 같이 복사할 요소 갯수가 복사 대상 배열의 크기보다 넘어가는 경우, 에러가 발생한다. 2. 객체 배열의 복사 2-1) 얕은 복사 객체 배열을 복사해본다. 그런데, 복사 원본 객체 배열의 값을 바꾸었더니, 해당 원본을 복사한 shelf2 배열의 값도 따라 바뀌었다. 이는 값이 복사된 것이 아니고 "주소"가 복사된 얕은 복사였기 때문이다. 즉, shelf1[0] 과 shelf2[0]이 같은 값을 가리키고 있다. 2-2) 깊은 복사 각 객체 배열이 서로 다른 인스턴스의 메모리를 요소로 가지게 하는 깊은 복사는 다음과 같이 get.. 2021. 8. 1. [Kafka] Producer 관련 주요 옵션 📌 kafka 및 Confluent 를 공부하며 정리하는 글 Producer Configurations Idempotent Producer acks=0 (no acks) producer는 메세지만 보낼 뿐, 해당 메세지가 broker단에 제대로 전달되었는지 확인하지 않는다. 메세지 손실의 위험이 있다. 단순 메트릭 정보와 같이 메세지 손실이 어느정도 눈감아지는 상황이라면 사용해도 괜찮다. acks=1 (leader acks) producer에서 Kafka로 데이터를 보내면(:write request), leader Broker는 write request에 대해 respond를 보낸다. 그리고 해당 데이터를 Topic에 write한다. leader에게 응답을 받지 못한 경우 producer는 다시 writ.. 2021. 5. 29. 이전 1 2 3 4 5 ··· 16 다음