kafka
Riot Data Pipeline 구축하기 #6 - Spark Streaming으로 Kafka Consumer 구현 및 HDFS에 데이터 저장하기
지난 글에서 Spring을 통해 Match 정보를 Kafka에 전송하는 과정까지 진행했습니다. 이번 글에서는 Kafka에 쌓인 데이터 확인과 Spark Streaming으로 Kafka Consumer를 구현하는 과정을 진행하겠습니다. Kafka Topic 확인하기 Kafka Manager를 이용하면 Kafka 클러스터와 Topic 모니터링을 효율적으로 할 수 있습니다. Kafka 서비스를 위한 docker compose의 Kafka Manager 웹 GUI를 보면 아래와 같습니다. ( Kafka Cluster 등록 과정 필요 ) Topic 정보 또한 확인이 가능합니다. GUI가 없다면 직접 터미널에서 명령어를 통해 확인해야만 합니다. 하지만 Kafka Manager를 통해 쉽게 정보들을 확인할 수 있습니..
Riot Data Pipeline 구축하기 #5 - Kafka Producer client 구현 및 데이터 전처리 과정
이번 글에서는 Riot 데이터를 불러와 Kafka 클러스터에 Produce하는 과정 및 이슈 사항들을 정리하겠습니다. Producer Client 구현 특정 Summoner의 데이터를 불러와 Kafka에 produce 하는 과정을 "/produceSummonerMatchInfo" 주소의 API로 구현했습니다. 지난 글에서 언급했듯이, Summoner 이름을 input으로, Match 정보를 output으로 하는 Riot API는 존재하지 않습니다. 그래서 필요로 하는 API를 여러개 사용하여 최종적으로 Match 정보를 Produce하도록 해야했습니다. 세부 과정으로는 아래와 같습니다. 1. Summoner 이름으로 puuid 가져오기. 2. puuid로 match id list 가져오기. 3. Matc..
[Kafka] Docker로 Kafka 구성 시 Host machine과 통신하기 위한 listener 설정 방법
Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 관련 글 [Spark] Spark structured streaming으로 Kafka topic 받기 #1 - Kafka 클러스터 구성하기 [Spark] Spark structured streaming으로 Kafka topic 받기 #2 - Spark 및 Hadoop 서비스 실행하기 [Spark] Spark structured streaming으로 Kafka topic 받기 #3 - pyspark로 HDFS에 topic data 저장하기 이번 글에서는 Docker로 Kafka 클러스터를 구성했을 때 Host machine에서 Topic을 Produce 할 수 있는 방법을 소개하겠습니다. 위의 관련 글에서처럼 Kafka ..
Riot Data Pipeline 구축하기 #4 - API response 데이터 저장 타입 변경 및 Kafka 클러스터 생성
이번 글에서는 이전 글에서 작성했던 필요한 API를 모두 구축하고 개발하면서 변경이 필요했었던 부분에 대해서 다루도록 하겠습니다. 그리고 docker compose를 이용한 Zookeeper를 포함한 Kafka 클러스터를 생성하도록 하겠습니다. Riot API 호출 구현과 문제 상황 분석하는데 필요하다고 생각한 Riot API에 대해서 모두 구현을 완료했습니다. Riot API 리스트는 아래와 같습니다. 소환사 이름으로 계정 조회 : /lol/summoner/v4/summoners/by-name/{summonerName} 소환사 puuid로 match id 조회 : /lol/match/v5/matches/by-puuid/{puuid}/ids match id로 해당 match 정보 조회 : /lol/ma..
[Spark] Spark structured streaming으로 Kafka topic 받기 #3 - pyspark로 HDFS에 topic data 저장하기
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API 이전 글에서는 console 창에서 입력하는 값을 topic에 produce 했었습니다. 이번에는 csv 파일을 이용하여 실시간으로 데이터를 전송하는 것처럼 producer를 구현하도록 하겠습니다. 글에서 실습할 전체적인 과정은 아래 이미지와 같습니다. Kafka-1 container가 Producer의 역할로 test1이라는 Kafka topic에 데이터를 보내고 test1 topic에 담겨있는 내..
[Spark] Spark structured streaming으로 Kafka topic 받기 #1 - Kafka 클러스터 구성하기
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API 이번 글부터는 Kafka 와 Spark를 docker로 구성 및 이용해보겠습니다. Docker를 이용한 hadoop 구성하기와 CDH 배포판 설치하기는 docker container를 hadoop 클러스터 중 하나의 서버로 사용해왔습니다. 하지만 docker에 대해서 공부하고 알다 보니 이것은 올바른 사용법이 아니라고 생각했습니다. 최근 docker와 k8s는 monolithic 모델보다는 micro..