본문 바로가기

log

(4)
[kafka] topic이 delete가 되지 않을 경우 해결법 kafka에서 토픽을 삭제하는 방법은 아래와 같다. 먼저 server.properties에 다음 옵션을 추가해야 한다. delete.topic.enable = true 그리고 아래의 명령어를 실행하면 해당 토픽이 marked되고 일정 시간 후에 전체 클러스터에 토픽이 삭제되게 된다. bin/kafka-topics.sh --delete --zookeeper --topic 하지만 UnknownTopicOrPartitionException 같은 에러가 발생하면서 주키퍼에서까지 지워졌던 토픽이 다른 노드에 의해 복구되어 삭제가 되지 않는 경우가 있다. 이런 경우는 카프카 클러스터를 재시작할 때 원할하게 실행되지 않은 경우 발생하여 전체 클러스터를 다시 시작해도 지속적으로 발생하게 된다. :org.apache.k..
Node.js logging 프레임워크 winston node.js에서 colsole 객체를 이용하여 로그를 출력할 수 있습니다. 그렇지만 프로그램의 크기가 커질 경우 로그의 양도 많아지고 저장했다가 나중에 확인해야 하는 경우가 있습니다. node.js에는 여러 logging 프레임워크가 있습니다. 이번에는 winston이라는 프레임워크에 대해 알아보겠습니다. Winston은 다중 전송을 지원하는 간단하고 보편적인 비동기 로깅 라이브러리입니다.로깅하는 방식을 transport라고 하며 Console, File, db등을 지원합니다. 윈스톤 로거의 각 인스턴스는 여러 수준으로 구성된 여러 전송을 가질 수 있습니다. 모듈 설치로깅처리를 위한 Winston 의존적인 모듈 설치합니다. winston 기본 모듈, 파일에 일별 로테이트하며 기록하는 모듈, 그리고 시간..
Apache Kafka 정리 Apache Kafka 1. 소개 kafka는 링크드인에서 개발한 발행-구독 방식의 고성능 분산 메시징 시스템입니다.kafka는 크게 topic과 메시지를 관리하는 broker, 메시지를 전송하는 producer, 그리고 메시지를 소비하는 consumer로 이루어져 있습니다. 일반 메시징 시스템의 경우 메시지를 메모리에 저장하는 경우가 많은 반면 kafka의 경우 메시지를 파일에 저장하여 메시지의 영속성이 높으며 그러면서도 OS의 페이지 캐시와 zero copy 기법 그리고 async non blocking io를 이용하여 기존 메시징 시스템보다도 고성능을 구현하였습니다.또한 아키텍쳐 자체가 분산 시스템을 목표로 개발되었기 때문에 확장 또한 매우 손쉽게 할 수 있습니다. 예) activemq, kafka..
spark streaming에서 중요한 옵션 정리 최근 스파크 스트리밍을 이용해서 실시간 로그 전처리 작업을 진행중이다.작업을 하면서 문제가 발생했던 부분을 옵션을 수정하면서 해결하였다. 1. spark.streaming.kafka.maxRatePerPartition-> 초당 파티션의 처리량 제한메시지가 한번에 대량으로 들어오거나 어떠한 이유로 스트리밍 어플리케이션이 다운되어서 카프카에 대량의 메시지가 쌓여있을 경우 어플리케이션을 재시작하면 대량의 메시지가 한번에 받아들여져서 설정된 executor-memory 이상의 데이터가 몰리면 OOM에러가 발생하게 된다. 만약에 상황에 대비해서 자원할당을 무작정 크게 할 수는 없기 때문에 옵션을 찾아보았는데 maxRatePerPartition 옵션을 발견하였다. 이 옵션은 초당 파티션에 들어오는 레코드의 양을 제..