전체 글
[Algorithm][투 포인터] LeetCode 3 - Longest Substring Without Repeating Characters
알고리즘 분류 Two Pointer 시간 복잡도 \( O(N) \) 문제 링크 https://leetcode.com/problems/longest-substring-without-repeating-characters/ 관련 글 [Algorithm 문제 풀이/백준] - [Algorithm][투 포인터] 백준 1806 - 부분합 이번 문제의 알고리즘 종류는 투 포인터입니다. 투 포인터는 이전 글에서도 다른 문제로 한번 접했습니다. 개념도 단순하고 코드도 상당히 짧지만, 알고리즘을 모른다면 쉽게 풀지 못하는 문제이기도 합니다. 해당 문제는 서로 다른 부분 문자열 중 가장 길이가 긴 것을 찾아야 합니다. 만약 이것을 이중 for문을 이용한다면 당연스럽게도 시간 복잡도는 \( O(N^2) \) 이므로 상당히 비효..
[Algorithm][LCP] LeetCode 14 - Longest Common Prefix
알고리즘 분류 Longest Common Prefix 시간 복잡도 \( O(mn) \) 문제 링크 https://leetcode.com/problems/longest-common-prefix/ 이번 문제의 알고리즘 종류는 LCP(Longest Common Prefix)입니다. LeetCode에서 Easy 난이도의 문제로 등록되어 있지만, 여러가지 문제 풀이 방법들이 존재합니다. 저는 여러가지 방법 중 분할기법(Devide and Conquer)을 사용했습니다. String 리스트가 주어질 때 리스트 길이가 1이 될 때까지 index를 계속 두 그룹으로 나눠줍니다. 재귀 함수를 사용하여 쉽게 구현할 수 있습니다. 해당 재귀 함수는 String끼리 비교하며 LCP를 구하며 가장 처음의 함수까지 올라옵니다. ..
[Python] enumerate 반복문에서 index skip하기
enumerate(iterable, start=0) iterator를 지원하는 객체를 받으면 index와 value를 포함한 tuple을 반환합니다. next(iterator[ ,default ]) iterator를 지원하는 객체의 다음 item을 반환합니다. Python에서 반복문에 List 또는 string 변수를 사용할 때 index와 value를 모두 사용하기 위해 enumerate를 사용합니다. 하지만 조건에 따라 반복문 중에 바로 다음 index 또는 특정 index들을 넘겨야 하는 경우가 필요합니다. 이런 상황에서 필요한 방법을 소개하겠습니다. enumerate 사용 List 또는 string 변수를 반복문을 이용하면서 값을 사용할 때가 있습니다. 하지만 일반적인 for문을 사용하면 inde..
[Hadoop] HDFS NameNode의 Metadata 관리와 Failover 상세 과정
NameNode HDFS에서 모든 데이터의 metadata를 관리하는 노드. Failover 장애 극복 기능으로써 어떤 시스템의 문제가 발생했을 시, 예비 시스템으로 자동 전환되는 기능. 관련 글 [Hadoop] HDFS - The Hadoop Distributed File System 이번 글에서는 HDFS의 NameNode가 HA(High Availability) 구성된 상태에서 Failover가 일어나는 과정에 대해서 소개하도록 하겠습니다. 공부하면 아시겠지만, HDFS에서는 가장 중요하다고 할 수 있는 metadata를 NameNode가 관리합니다. 그래서 NameNode 서버가 죽게 된다면 이는 곧 HDFS를 사용할 수 없음을 뜻합니다. 그래서 이를 방지하고자 Secondary NameNode를..
[NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. NiFi 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] NiFi의 핵심 개념 및 아키텍쳐 [NiFi] Docker & NiFi로 HDFS 데이터 수집하기 [NiFi] Docker로 NiFi 클러스터 구성하기 앞선 글에서 Docker를 이용해 NiFi 클러스터 환경을 구성했다면, 이번에는 클러스터 환경에서 HDFS 데이터를 분산 수집하는 과정을 진행해보겠습니다. HDFS 데이터 만들기 테스트할 데이터를 만들기 위해 아래의 파일을 똑같이 복사하여 30개를 만들어주고 namenode container에 옮겨줍니다. /* Loc..
[NiFi] Docker로 NiFi 클러스터 구성하기
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. NiFi 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] NiFi의 핵심 개념 및 아키텍쳐 [NiFi] Docker & NiFi로 HDFS 데이터 수집하기 [NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기 이번에는 Docker를 이용해서 NiFi 클러스터를 구성해볼 예정입니다. 이전 글에서는 하나의 노드만 docker container로 실행시켜 NiFi를 작동시켰지만, 이번에는 3개의 container를 실행해 Primary node, Cluster coordinator를 확인해보겠..
[NiFi] Docker & NiFi로 HDFS 데이터 수집하기
Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. NiFi 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] NiFi의 핵심 개념 및 아키텍쳐 [NiFi] Docker로 NiFi 클러스터 구성하기 [NiFi] Docker로 NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기 이번에는 Docker를 이용해서 NiFi와 HDFS 서비스를 실행시키고 간단한 예제를 실습하겠습니다. 예제는 NiFi에서 Processor를 직접 만들고 HDFS 데이터를 수집할 예정입니다. NiFi & HDFS 서비스 실행하기 docker-compose를 통해 서비스들을 실행하는 방법은 이전 글들..
[NiFi] NiFi의 핵심 개념 및 아키텍쳐
NiFi란? 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] Docker & NiFi로 HDFS 데이터 수집하기 [NiFi] Docker로 NiFi 클러스터 구성하기 [NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기 빅데이터와 관련된 주제로써 이번에는 NiFi를 소개하겠습니다. NiFi는 미국 국가안보국(NSA)에서 Apache에 기증한 dataflow 엔진입니다. 기본적으로 데이터를 Extract, Transformation, Load (ETL)할 수 있는 툴로써 UI를 통해 다양한 기능들을 통해 데이터들을 flow화 시킬 수 있습니다. 그리고 가장 큰 특징으로는 클러스터를 구성해서 데이터를 ..