카프카의 토픽이나 그룹정보를 확인하는 기본적인 명령어 툴이 있다. 인터넷에 있는 대부분의 예시는 인증이 없는 방식이 예로 있는데, 카프카클러스터에 보안인증이 존재할때 기냥 명령을 내리면 실행이 안되고 에러가 난다. consumer 를 만들어서 실행할땐 properties 에 선언해서 큰 문제가 없는데, username 과 password 를 선언하기가 조금 애매한 상황이 발생된다. 이럴땐 --command-config 을 이용해서 파일의 설정을 읽어 내면 된다. 인증있는 카프카에 명령 하기 우선 다음과 같은 보안과 관련된 설정을 파일을 만들어 두어야 한다. 그리고 실행할때 파라미터로 제공하면 된다. 자주 쓰는 패턴의 명령어 예시는 아래에 적어두었다. kafka-auth.properties bootstra..
카프카에서 kafka-console-consumer 를 사용할 경우, JSON 이나 STRING 형태의 데이터가 잘 보이지만, AVRO 포맷으로 저장하는 데이터는 다음과 같이 깨지는 현상이 있다. 그래서 토픽의 결과를 깨지 않고 보려면 딴 명령을 사용해야 한다. 참고로 본인은 confluent 에서 제공하는 기본툴을 다운로드 받아서 사용했다. ./kafka-console-consumer \ --bootstrap-server 127.0.0.1:9092 \ --topic 토픽명 \ --from-beginning �߶�����xx-1234��吅����������my�� Ȼ ����� �¢�����xx-1234�Èă�������3�������my��� AVRO 토픽 결과 조회하기 avro 포맷은 스키마가 존재..
Kafka 의 토픽에 있는 데이터를 실시간성으로 데이터 집계 하기위해서는 Kafka Streams 를 많이 사용한다. 사용하기도 쉬운편이고, 카프카에만 의존되다보니 사실상 카프카만 세팅되어있다면 바로 활용가능하다. 하지만, 스트림 처리에서는 배치에는 없는 개념이 많다보니 의도하지 않은 형태로 결과가 나올때 가 많다. 결과가 반복되는 현상 스트림데이터는 무한의 데이터이다. 그래서 분석을 위해 어떤 시간기준으로 잘라서 집계를 하고 이걸 저장해서 분석하는게 일반적이다. 예를 들어, 1시간 윈도우로 단어 갯수를 샌다고 할때 나는 01:00~02:00 의 최종결과인 알파카 3(붉은색) 결과만 출력하고 싶은데, 중간 합계 결과인 (알파카 1), (알파카2) 가 같이 나오는 문제가 골치아픈 경우가 있다. 왜냐면, K..
카프카를 사용하다보면 토픽이나 컨슈머그룹을 확인하기위한 명령어를 사용해야 하는 경우가 많다. 처음엔 기본 command line 명령어툴을 사용했는데 사용하면서 느끼는 가장 큰 불편함은 아래 2가지였다. 명령어 파라미터가 조금 장황하고 클러스터를 여러대 운영한다면 "bootstrap-server" 주소를 기억해야한다 그래서 좀더 편하게 카프카 토픽을 다루는 명령어 툴이 없나? 하고 삽질하던끝에 꽤 좋은 녀석을 발견했다. kafkactl 이라는 녀석이고, 다행히 내가 사용중인 macOS 에서 잘 동작한다 https://github.com/deviceinsight/kafkactl 서버주소 입력하는것에서 해방 ! kafkactl 에서는 설정파일이 존재하기 때문에 매번 서버 주소를 입력하지 않고 명령어 처리가 ..
Kafka 의 장점은 메시지큐인데 휘발성이 아니라 파일에 저장되고 offset 형태로 과거의 데이터도 읽어오는게 가장 큰 장점이 아닌가 싶다. 그래서, 스트림데이터에 대한 재집계 문제를 offset 을 돌려서 처리할수 있고 자체적으로 병렬처리를 위한 개념들이 존재해서 사실상 스트림데이터를 다룰때 표준 플랫폼으로 사용한다. (배치용 스토리지는 hdfs , 스트림 스토리지는 카프카의 topic) 토픽(TOPC) 이란 무엇인가? 카프카에서는 데이터를 넣기 위한 공간을 topic 이라고 이야기 한다. (mysql, oracle 같은 dbms의 table을 생각하면 쉽다) 가장큰 다른점이라면, topic 에는 스키마가 존재하지 않는점이다. 쉽게 생각해서 byte 덩어리를 담아서 사용자가 serializable/d..