분류 전체보기
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/drOqdu/btsCZhLgoCo/vFz1p0SbV8V3lYHyMO6kn0/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
이번 포스팅에서는 Kafka Connector를 설치하고, 데이터베이스와 같은 Source들 사이에서 데이터 이동을 Kafka Connect를 연결하여 수행해보려고 한다. Kafka에 대한 대략적인 개념은 해당 포스팅에 작성하였으므로 참고하면 좋을 것 같다. https://sjh9708.tistory.com/151 [Apache Kafka] Kafka의 주요 개념과 구성 요소 Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되 sjh9708.tistory.com Kafka Connect Connect를 통해 Source System(특정 데이터 소스, 스토..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bEnX3g/btsC51z6wNm/g1aRctzkfghWKfE9L8Z9zk/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
해당 포스팅에서는 Kafka를 설치하고, CLI를 통해 Publisher, Consumer 간의 메시지 교환을 확인해보려고 한다. Kafka에 대한 대략적인 개념은 해당 포스팅에 작성하였으므로 참고하면 좋을 것 같다. https://sjh9708.tistory.com/151 [Apache Kafka] Kafka의 주요 개념과 구성 요소 Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되 sjh9708.tistory.com Kafka Server 설치 https://kafka.apache.org/downloads Apache Kafka Apache Kafka..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/b7IgHj/btsC3Zv0Ez5/GrVz3vY3iWPnuwrKuFRWdk/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되어, 데이터의 실시간 처리 및 분석에 사용된다. 여러 대의 Application의 로그 및 데이터를 수집하여 집계하거나, 서버들 간의 데이터 동기화를 위한 메세지 교환을 위해서 Kafka는 매우 유용한 수단이 될 수 있다. Kafka의 주요 특징 Event-Oriented : Kafka는 이벤트 스트리밍 플랫폼으로서, 발생하는 이벤트가 중심이 되어 시스템이 구성된다. 이벤트를 실시간으로 수집하고 처리한다. Publish-Subscribe 모델 Consumer(메시지를 받는 주체)가 어느 Topic(카테고리라..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bqIcvb/btsHVurl8mN/K7PxIcOQ1pM4NGOHsuSwM1/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
선출 알고리즘 (Election Algorithms)여러 노드 중에서 한 노드를 리더 또는 Coordinator(코디네이터)로 선택하는 역할을 수행한다. 이러한 알고리즘은 분산 시스템에서의 리더 노드를 동적으로 정하는 데 사용되며, 안정성과 효율성을 유지하는 데 중요하다. 분산 시스템에서는 여러 노드가 동시에 동작하며, 리더는 전체 시스템에서 특정 임무를 담당하거나, 특정 동작을 조정하며, 일관성을 유지하거나 효율적인 리소스 할당을 수행하는 역할을 수행한다. 여러 노드 중 하나의 노드를 리더로 선택하는 것은 중요한 과정이다. 1. Centralized Model → Coordinator Process의 Fail 시 새로운 Coordinator을 Election하는 과정을 거침2. 각 활성 프로세스가 고..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/eBpYz7/btsHUoFCl65/KKGbSIEjb25hm7Z3oaMWW1/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
Distributed Mutual Exclusion 분산 시스템에서 여러 프로세스가 공유 자원에 대한 접근을 조율하고, 한 번에 하나의 프로세스만이 해당 자원에 접근하도록 하는 기술이나 알고리즘을 의미한다. 다수의 프로세스가 동시에 공유 자원에 접근할 때 충돌이 발생하면 데이터 일관성 문제나 부정확한 결과를 야기할 수 있으며 따라서 이러한 상황을 피하기 위해 상호 배제가 필요하다. 특히 분산 시스템의 경우 여러 노드 간의 효율적인 협력이 필요한 환경에서 중요한 역할을 하면서 이를 처리하기 위한 과정이 단일 시스템에 비해서 복잡하다. 요구사항리소스에 대한 동시 엑세스 방지 → 분산 시스템의 여러 프로세스는 일부 리소스에 대한 독점 엑세스를 원함Safety : Mutual Exclusion(상호 배제) →..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/cLcQWs/btsHU6xs1eu/VVa0ewr99t9coJr2LMYiO1/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
분산 시스템에서의 동기화(Synchronization)의 필요성일관성 유지: 여러 대의 컴퓨터가 네트워크를 통해 상호 작용하는 분산 시스템에서는 데이터의 일관성을 유지하는 것이 중요하다.트랜잭션 처리: 분산 데이터베이스나 분산 시스템에서 트랜잭션을 일관성 있게 처리하려면 서로 다른 노드 간에 동기화된 타임스탬프나 논리적인 순서가 필요하다.분산 시스템 성능 향상: 동기화를 통해 병렬처리를 효과적으로 수행함으로써 성능을 향상시킬 수 있다.상태 공유: 여러 컴퓨터가 상태를 공유하고 특정 이벤트에 대한 조율을 필요로 할 때 동기화를 통해 상태 일관성을 유지하게 한다. RPC나 Apache Kafka를 비롯한 Message Broker가 해당 역할을 할 수 있다. Message Broker은 메시지 기반의 비동기..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/crTkWC/btsHVvqhBNM/n9sigu6QifPYiUHkkkuHtk/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
Communication분산 시스템에서 공통적으로 접근하는 Shared Data에 대한 동기화(Synchronization)를 위해서 필요하다.이를 위해서 분산 시스템 간의 의사소통이 필요하기 때문에 Communication의 방법론들이 탄생하게 되었다. 두 가지 Communitcation 방법Shared Memory : 직접 메모리 엑세스(스레드), 매핑된 메모리(프로세스)물리적으로 메모리를 공유할 수는 없음Message : OS의 IPC, 네트워크를 통한 통신Latency(지연 시간) 발생Failure 확률 상승Heterogeneity로 인한 비호환성 발생 가능 분산시스템의 Communication 종류1. Message-oriented Communication2. RPC (Remote Proced..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/ewuG1U/btsC5YXGICC/rBFavZaELDMk4qwUD02U8k/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
1. 프로세스의 개념프로그램 : 저장장치에 저장되어 있는 정적인 상태프로세스 : 실행을 위해 메모리에 올라온 동적인 상태 2. 프로세스 상태프로세스 상태new(생성) : 프로세스가 메모리에 올라와 실행 준비 완료. 메모리 할당, PCB 생성ready(준비) : 생성된 프로세스가 CPU를 얻을 때 까지 기다리는 상태. PCB는 Ready Queue에서 대기. CPU 스케줄러에 의해서 관리runnng(실행) : 준비 상태에 있는 프로세스가 CPU를 얻어 실제 작업을 수행. 타임 슬라이스 동안 작업terminated(완료) : 실행 상태의 프로세스가 주어진 타임 슬라이스 내에 작업을 마침. 프로세스 종료, PCB 폐기waiting(대기) : 실행 상태의 프로세스가 입출력을 요청하면 입출력이 완료될 때 까지 ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bDcHBA/btsC6RYdE2S/0KIwLa0zq9jSvZcTCTfw41/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
기계학습¶ML에 사용할 수 있도록 변환한 데이터들을 다양한 모델을 활용하여 지도학습을 통해 예측을 수행해보자 해당 Jupyter Notebook에서는 다음 내용들을 다룬다. 서포트 벡터머신(Support Vector Machine) 로지스틱 회귀(Logistic Regression) 네이브 베이시안(Naive Bayes) 의사결정 트리(Decision Tree) In [1]: import os, sys import pyspark myConf=pyspark.SparkConf() spark = pyspark.sql.SparkSession.builder\ .master("local")\ .appName("myApp")\ .config(conf=myConf)\ .getOrCreate() 23/12/19 04:4..