본문 바로가기

전체 글38

[Apache Spark] 아파치 스파크 배경, 그리고 이해 빅 데이터를 다루기 위해 만들어진 아파치 스파크 아파치 스파크의 배경, 이해 아파치 스파크는 "빅데이터 분산 처리 엔진" 혹은 "빅데이터 오픈소스 분산 처리 플랫폼" 구체적으로는 "인메모리 기반 대용량 데이터 고속 처리 엔진으로 범용 분산 클러스터 컴퓨팅 프레임워크" 이렇게 이해되고 있다. 처음 빅데이터의 개념이 등장했을때 빅데이터 처리는 분산형 파일 시스템을 기반으로 만들어진 하둡(HDFS) 에코시스템이 대세를 이루었다. 그러나 현재는 빅데이터 처리를 실시간으로 필요한 서비스가 늘어나면서 DISK I/O 기반인 하둡이 아닌 인 메모리상에 동작하는 Spark가 주목받기 시작했고, 이제는 빅데이터에서 없어서는 안될 중요한 프레임워크가 되었다. 디스크 블록에서 처리하는게 아닌 인메모리상에서 동작하는 스파크는.. 2022. 3. 22.
병렬처리와 분산처리 병렬처리란? 데이터를 여러개로 쪼개고 여러 쓰레드에서 각자 task를 적용한다. 각자 만든 결과값을 합치는 과정 분산된 환경에서의 병렬처리? 데이터를 여러개로 쪼개서 여러 노드로 분산한다. 여러 노드에서 각자 독립적으로 task를 적용한다. 각자 만든 결과값을 합친다. but 노드간 분산처리의 경우 노드간 통신같이 신경써야 될 것이 늘어나는데 Spark를 이용하면 분산된 환경에서도 일반적인 병렬 처리를 하듯 코드를 짜는게 가능하다. Spark는 분산된 환경에서 데이터를 병렬 모델로 구현해 추상화 시켜주기 때문이다. = RDD RDD.map() * 노드간 통신에 걸리는 지연시간을 주의하며 코드를 작성해야 한다. 2022. 3. 18.
[python] decorator 파이썬 데코레이터 이해하기 데코레이터는 함수에서 코드를 바꾸지 않고 추가하거나 수정하고 싶을 때 사용하는 문법이다. 처음 이해하기 조금 난해할 수 있지만 사용 이유, 단순하게 이해할 수 있는 순서 그리고 현실적인 예제 등을 기록하려고 한다. 데코레이터를 사용하는 이유 기존에 만들어진 함수가 다른 곳에서 이미 많이 사용되고 있을 때 (= 함수 코드의 변경이 어려운 경우) 코드를 변경하지 않고, 필요한 내용을 추가하거나 수정하고 싶을 때 사용한다. 위 코드는 a와 b함수에 공통적으로 포함되어 사용되는 code1과 code3이 있다. code1과 code3이 포함된 함수를 별도로 선언하고 사용되면 좋겠다고 느껴질 것이다. 데코레이터는 중복 코드를 재활용하는 과정에 사용한다고 이해할 수 있다. 데코레이터 함수 사용법 이해 데코레이터 사용.. 2022. 1. 22.
[python] in 연산자의 실행시간, 시간 복잡도 BigO in 연산자 파이썬에서 자주 사용되는 in 연산자 예제 ls = [1, 2, 3] if 4 in ls : print("exist") else : print("not exist") >>> "not exist" dc = { 'a' : 1, 'b' : 2, 'c' : 3, } if 'c' in dc.keys() : print("exist") else : print("not exist") for k, v in dc.items(): if k == 'c': print(v) >>> "exist" >>> 3 in 연산자의 Big-O 나는 알고리즘 공부를 하던 중에 in연산자의 bigO가 궁금해졌다. 해시의 문제풀이로 사용되는 dict의 경우 in 연산자가 어떤 속도를 내게 될지 궁금해졌기 때문이다. 그리고 list, .. 2022. 1. 7.
[Apache Kafka] 아파치 카프카란 본 내용은 아래 글들에서 읽고 정리한 것입니다. https://www.redhat.com/ko/topics/integration/what-is-apache-kafka https://kouzie.github.io/kafka/%EC%95%84%ED%8C%8C%EC%B9%98-%EC%B9%B4%ED%94%84%EC%B9%B4/# 아파치 카프카란? 아파치 카프카는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼이다. 카프카는 초당 수백만 개의 데이터 포인트를 처리할 수 있어서 여러 소스에서 데이터 스트림을 처리하고, 여러 사용자에게 전달하도록 설계되었다. 여기서 여러 사용자는 데이터 처리가 필요한 어느 곳이든 해당 될 수 있다. 아파치 카프카는 시스템 또는 애플리케이.. 2022. 1. 5.