분류 전체보기
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgPtTT%2FbtrCfm7zuK0%2FcQ9QZzQM28NnRM0QkcHX81%2Fimg.png)
[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 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FteRX4%2FbtrBim0PD0o%2FTW5efwNMrmnHLHzrjkAsWk%2Fimg.png)
[Hive] Metastore & MySQL 문제로 Hive Query 실행 안되는 이슈 해결 방법
빅데이터 플랫폼을 운영하면서 겪었던 문제 중 Hive 관련 경험을 소개하도록 하겠습니다. 문제 상황 & 분석 과정 클러스터 운영 중에 Hive Query가 작동하지 않는다는 문의를 받았습니다. 문의 사항은 너무 일반적인 문제 상황이었기 때문에 현재 상황을 파악했고 아래와 같았습니다. - Hiveserver 정상 - Terminal CLI에서 Hive 접속 가능 - Hive Metastore 정상 Hive 상태를 체크했지만 겉으로 보기에는 전혀 문제가 있어보이지 않았습니다. 그래서 일단 Hive에 접속해 간단한 select문을 실행해봤습니다. [root@server1 ~]# hive .... hive > select * from example_db.example_table; 하지만 Query를 실행한지 한..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdopUQh%2FbtrACMsZn7v%2FQZrOOgjbWBnpJ3fmNM8DQk%2Fimg.png)
[Hadoop] YARN Capacity scheduler 특징 및 Queue 옵션
YARN Scheduler란 YARN Scheduler란 할당시킬 리소스를 결정하는 알고리즘으로써 다양한 설정 값들을 통해 클러스터의 리소스를 효율적으로 사용할 수 있습니다. YARN은 기본적으로 Hadoop 플랫폼에서 작동하는 어플리케이션에 리소스를 할당시키고 관리하는 역할을 맡고 있습니다. 어플리케이션이 제출되어 AM( Application Master )가 생성되면 아래 그림과 같은 절차가 진행됩니다. 이 때 AM이 RM( ResourceManager )에게 리소스 요청을 하면 RM은 Scheduler를 통해 할당시킬 리소스의 양을 결정합니다. YARN Scheduler 종류 Scheduler의 종류로는 아래 3가지가 존재합니다. 이 중 Capacity scheduler가 기본 default 값으로..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDsh7k%2Fbtry8iTVdMK%2FOoftEym49TKcYYKfTFxVfK%2Fimg.png)
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..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct9ge0%2FbtrymjlbGCu%2FjAgyLgNwQrf4TV15qugXm1%2Fimg.png)
Riot Data Pipeline 구축하기 #3 - 필요한 Riot API 리스트 정리 & 플랫폼 아키텍처 설계
이번 글부터는 분석을 위한 데이터의 API를 알아보고 대략적인 아키텍처 설계를 해보겠습니다. 처음 진행하는 프로젝트이고 아직 제가 안써본 것들이 많기 때문에 진행하면서 지속적으로 바뀔 수 있습니다. 하지만 가장 먼저 설계를 하고 틀을 잡아야 목표를 잡을 수 있을 것 같아서 대략적으로 진행했습니다. 필요한 Riot API 리스트 지난 글에서는 닉네임을 통한 계정 조회 API를 구현해봤습니다. 이어서 필요한 API를 더 조사해봤습니다. 다양한 API들이 존재했지만, 계정 정보와 해당 계정이 플레이한 match, match의 디테일한 내용을 얻을 수 있는 API를 추렸을 때 아래와 같이 4개의 API가 필요로 하는 서비스였습니다. 소환사 이름으로 계정 조회 : /lol/summoner/v4/summoners/..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlFf2r%2FbtrxhOhtOsv%2FM8AqmrEyJBAiB18DnhN8k0%2Fimg.png)
Riot Data Pipeline 구축하기 #2 - Spring boot 프로젝트 생성 및 Riot API 사용해보기
지난번 글에서 Riot API를 위한 Product 등록까지 마쳤고 며칠 내로 승인되어 Approved 상태가 되었습니다. 그래서 Java Spring을 이용해서 간단한 API 사용을 해봤습니다. Spring boot 시작하기 Spring 프로젝트를 만들기 위해서 start.spring.io 사이트에 접속해 아래와 같이 여러가지 설정을 해줬습니다. 이렇게 설정을 해주고 아래에 "Generate" 버튼을 눌러주면 zip 파일 하나가 다운로드되는데, 해당 파일을 압축 해제하면 프로젝트 관련 파일들을 확인할 수 있습니다. 프로젝트 파일을 확인 후 저는 IntelliJ를 사용하여 코딩을 진행했습니다. Riot API 확인하기 Riot Developer 페이지에서 내 Product 페이지에 들어가면 사용할 수 있..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlOhpy%2FbtrwXzRBFYY%2FWgLTKR3ALoEohpqXaKMnAk%2Fimg.png)
Riot Data Pipeline 구축하기 #1 - Riot API 사용을 위한 Product 등록하기
이번 글부터는 Riot API를 사용하여 LOL(League of Legend) 게임의 데이터를 가져와 빅데이터 플랫폼에 저장하고 사용까지 할 것입니다. 그 중에서 가장 첫번째 해야할 것은 바로 Riot API를 사용하기 위해 Riot Developer 사이트에 Product 등록하기입니다. Riot Developer 사이트 접속 및 로그인 Riot API는 Riot Developer 사이트에서 따로 관리가 되고 관련 공식 문서들을 볼 수 있습니다. 아래 링크를 통해 Riot Developer 사이트에 접속하고 우측 상단에서 자신의 ID(LOL ID)로 로그인합니다. - https://developer.riotgames.com/ Riot Developer Portal About the Riot Games..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYIHxI%2FbtrwtZQqAxF%2FWPSdksxFBtL810Fux2AO8k%2Fimg.png)
[Algorithm] LeetCode 5 - Longest Palindromic Substring
시간 복잡도 \( O(N^2) \) 문제 링크 https://leetcode.com/problems/longest-palindromic-substring/ 이번 문제의 유형은 palindrome으로써 문자열 중 가장 긴 palindrome을 찾는 문제입니다. Palindrome이란 거꾸로 뒤집어도 똑같은 문자열을 뜻합니다. 가장 쉬운 방법으로는 모든 문자열에 대하여 palindrome 여부를 검사해 가장 길이가 긴 문자열을 답으로 제출하면 됩니다. 시간을 계산하면, 모든 문자열은 이중 for문을 이용해 \( O(N^2) \)의 시간, 문자열마다 palindrome 여부를 검사하는 \( O(N) \) 시간이 걸리므로 총 \( O(N^3) \)의 시간 복잡도를 가집니다. \( O(N^3) \)의 시간 복잡도..