분류 전체보기(81)
-
kafka - Topic Partition 개수 설계
카프카에 파티션 수가 늘어날 수록 처리량을 올라가지만, 그에 따른 반작용이 있다. 바로 Latency 증가하고 recovery time 이 늘어난다. 그래서 무작정 파티션 수를 늘리는 것보다, 적절한 목표 처리량을 설정하고 그에 맞춰 파티션 개수를 산정해야한다. 이어 기능상에 대해서도 고려를 해야한다. 카프카 파티션 수 설계 가이드 파티션 수를 증가하면 처리량이 높아짐 (분산효과) 프로듀서, 브로커 : write 처리량이 증가, hardware 자원 사용 증가 컨슈머 : 파티션 수만큼 병렬 쓰레드 구동해서 처리량 증가 목표 처리량 (t) 이 있다면, 파티션 개수를 정할 수 있음 단일 파티션 쓰기 속도 계산 (p) 단일 파티션 읽기 속도 계산 (c) 파티션 개수 = max (t/p, t/c) 고려사항 ba..
2021.07.21 -
Python - Kafka Producer 구성
kafka에 message를 보내기 위해서 파이썬으로 프로듀서를 구성해보았다. 우선먼저 필요사항 Python kafka-python 그리하여 먼저 Kafak-python 라이브러리를 설치한다. !pip install kafka-python 아주 가뿐하게 설치를 하고 나면 이제야 비로서 코드를 한번 알아보도록 하자. from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') for _ in range(100): producer.send('foobar', b'some_message_bytes') 세상 너무 간단하다.. 정말 이것으로 우리가 원하는 메세지를 생성할 수 있나? 실제로 가능하지만.. 너무 기..
2021.07.21 -
Spark - Apache Spark란..
1. Apache Spark란.. Apache Spark는 오픈소스이며, 범용적인 목적을 지닌 분산 클러스터 컴퓨팅 프레임워크으로서 Fault Tolerance & Data Parallelism을 가지고 클러스터들을 프로그래밍할 수 있게 도와준다. Apache Spark에서는 RDD, Data Frame, Data Set의 3가지 API를 제공하는데, 이러한 데이터를 바탕으로 In-memory 연산을 가능하도록 하여 디스크 기반의 Hadoop에 비해 성능을 약 100배 정도 끌어올렸다. 다만. 성능을 재대로 활용하기 위해서는 노력이 필요.. 2. Spark의 구조 스파크는 스파크를 보조하는 YARN 그리고 HDFS와 다양한 API들로 구성되어 다양한 연산처리를 할 수 있도록 구성되어 있다. 아래 그림을 ..
2021.07.21 -
Spark - Docker로 Spark Cluster + Jupyterlab 구성
빅데이터를 공부하고 이쪽으로 직업을 가지길 원한다면 한번쯤 들어봤을 Spark를 Docker를 이용하여 쉽고 빠르게 구성해 보도록 하겠다. 만약 Spark에 대해서 알지 못하는 분이라면 아래 링크를 통해 가볍게 Spark가 무엇인지 알아보고 시작하자. Apache Spark 란.. 설치할 Spark와 Jupyterlab의 버전은 아래와 같다. Spark : 3.1.1 Simulated HDFS : 3.2 Jupyterlab : 2.1.5 자 시작하기 앞서 이들을 구성하는 구성도를 한번 살펴 보자. 1. Spark 구성도 먼저 Spark Master를 생성해 주고 이를 Localhost에 8080 Port에 얹어 준다. 그 다음 두개의 Worker를 구성하여 각각 8081 / 8082 Port에 얹어 준다..
2021.07.21 -
Linux - 파일&디렉토리 압축하기
압축 파일 종류는 크게 3가지로 정한다 tar, zip, tar.gz 이 3가지의 압축 방법에 대해서 알아보도록 한다. 1. tar $ tar -cvf [만들고싶은 압축파일 이름.tar] [폴더명] # abc라는 폴더를 kkk.tar로 압축 예시 $ tar -cvf kkk.tar abc 2. zip # 압축 명령어 예시 $ zip [만들고싶은 압축파일 이름.zip] [디렉토리명] # 현재폴더 전체를 압축 $ zip [만들고싶은 압축파일 이름.zip] ./* # 압축할 디렉토리의 하위 항목까지 전부 압축 할때 사용 $ zip [만들고싶은 압축파일 이름.zip] -r [디렉토리명] 3. tar.gz $ tar -zcvf [만들고싶은 압축파일 이름.tar.gz] [폴더명] # abc라는 폴더를 kkk.tar...
2021.07.20 -
Kubernetes - K8S ubuntu 18.04 set-up 진행
주의 : 이 글에서는 VM을 한대밖에 가용하지 못해서 한대에 마스터만 구현했습니다. 정상기능으로 작동하나 원래대로 진행한다면 노드까지 포함하여 3대의 VM이 필요합니다. 1. 최소 스펙 - MASTER CPU : 2 Core RAM : 3 Gb - NODE CPU : 2 Core RAM : 3 Gb 2. 사전 준비 사항 아래 사항을 반드시 체크 할 것 CPU 2개 이상 각 노드는 2개 이상의 CPU (코어) 가 있어야 합니다. 스왑 메모리 비활성화 Kubernetes 는 Swap Memory 를 고려하지 않고 개발되었습니다. Swap Memory 가 활성화되어 있으면 여러 문제가 발생할 수 있습니다. 각 노드간 원활한 네트워크 방화벽 등 각 노드간의 네트워크를 방해하는것을 제거하는 것이 좋습니다. Doc..
2021.07.16