Kafka QuickStart Step 1: 카프카 다운로드 아파치 카프카를 다운로드 받는다. (버전 2.12-2.2.0) Download 다운을 다 받으면 압축을 풀고 폴더로 가면 아래와 같이 파일 목록들을 볼 수 있다.(폴더명은 kafka_2.12-2.2.0에서 kafka_2.12로 변경함) $ tar -xzf kafka_2.12-2.2.0.tgz $ cd kafka_2.12-2.2.0 user@ubuntu-vm-01:~/Documents/kafka_2.12$ ls bin config libs LICENSE logs NOTICE site-docs bin 폴더에는 실행파일들이 담겨있다. user@ubuntu-vm-01:~/Documents/kafka_2.12$ cd bin user@ubuntu-vm-0..
분류 전체보기
Apache Kafka 개념 및 소개 Apache Kafka는 LinkedIn에서 개발된 분산 메시징 시스템으로, 대용량 실시간 로그처리에 특화된 아키텍처 설계를 통해 기존 메시징 시스템보다 우수한 TPS를 보여주고 있다. Kafka는 RabbitMQ와 메시지 큐와의 성능에서 차이가 나며, 클러스터 fail-over, replication과 같은 여러가지 특징을 가지고 있다. Kafka의 기본 구성요소 및 동작 Kafka의 구조 Kafka는 발행-구독(publish-subscribe)모델을 기반으로 동작 크게 producer, consumer, broker로 구성 topic을 생성하고 producer가 topic 메시지를 전달한다 > Broker는 Zookeeper를 통해 Topic별로 적재(파티션 별로..
#Apache Zookeeper 사이트 : https://zookeeper.apache.org/ Apache Zookeeper는 Apache 재단의 오픈소스 프로젝트 중 하나이며, ZooKeeper는 사육사라는 뜻이고 하둡의 한 하위 프로젝트였다가 독립적인 상위 프로젝트가 되었다. ZooKeeper는 분산 어플리케이션 or 분산 동기화를 제공하기 위한 분산 관리 서비스로, 중복 서비스를 이용한 고가용성을 제공하고 노드들이 파일 시스템 trie 데이터구조와 비슷한 네임 스페이스 안에 데이터들을 저장하고 클라이언트들이 이 노드들을 읽거나 쓴다. 구성요소 요청 처리기를 제외하고 ZooKeeper 서비스를 구성하는 각 서버는 각 구성 요소의 자체 복사본을 복제한다. ZooKeeper는의 장점 간단하고 복제가 가..
Messaging System Messaging System은 하나의 프로그램에서 다른 프로그램으로 데이터를 전달할 수 있도록 돕는 시스템이다. Messaging System의 기본 원칙 Loose Coupling(느슨한 연계) : Application 상호간에 의존성을 최소화 하는 것으로 한쪽에서 변경이 발생할 경우 다른 프로그램은 영향을 받지 않는 것. Common Interface(공용 인터페이스 정의) : Application간에 데이터를 교환하기 위해 공용으로 규정된 데이터 형식을 정의한다. Latency(응답속도) :메시지 전송부터 수신까지의 소요시간을 말한다. reliability(신뢰성) : 일시적인 가용성 문제가 발생해도 정보를 교환하는 Application에는 영향을 주지 않는다. 기본..
OAuth 2.0 OAuth 2.0은 OAuth 1.0의 단점을 개선한 것으로, OAuth 1.0은 웹 애플리케이션이 아닌 애플리케이션에서는 사용하기 곤란하다는 단점이 있다. 그리고 절차가 복잡하여 OAuth 구현 라이브러리를 제작하기 어렵고, 복잡한 절차 때문에 Service Provider에게도 연산 부담이 발생한다. OAuth 1.0과 OAuth2.0의 차이 인증절차의 간소화로 인해 개발자가 구현하기 쉬워짐 기존에 사용하던 용어도 바뀌면서 Authorization Server와 Resource서버의 분리가 명시적으로 되었다. 다양한 인증방식을 지원 OAuth 2.0의 특징 인증절차 간소화 기능을 단순화했으며 기능과 규모의 확장성 등을 지원한다. OAuth 1.0은 디지털 서명 기반이지만 OAuth ..
1. OAuth란? 개요 OAuth는 Open Authorization or Open Authentication이란 뜻으로 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹 사이트나, 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로 사용되는 접근 위임을 위한 개방형 표준이다. 구글, 페이스북, 트위터, 카카오, 네이버 등의 기업들이 타사 애플리케이션이나 웹 사이트의 계정을 공유할 수 있게 허용해준다. 애플리케이션 서비스 공급자들이(Service Provider) 유저의 비밀번호를 Third Party앱에 제공 없이 인증, 인가를 할 수 있는 표준 프로토콜이며, OAuth 인증을 하면 애플리케이션 API를 접근할 수 있는 권한을 얻을 수 있다. 과거에는 ..
Apache Spark Apache Spark는 분산된 메모리상의 데이터 처리 시스템이며, 2009년 버클리 대학교의 AMPLab에서 MapReduce Framework 성능을 향상시키기 위해 시작되었다. Spark는 기본적으로 맵리듀스 개념을 사용하지만, Spark만의 데이터 처리 방법 및 task 처리 방법으로 인해 메모리 내의 연산 속도가 Hadoop보다 100배 가량 빠르고 디스크에 저장되어 있을 때는 10배 빠르다. Spark는 Batch와 실시간 데이터 처리 분석, 머신러닝, 단일 클러스터 플랫폼상의 거대한 데이터 그래프 처리 등을 위한 Application 개발에 사용되며, 자바, 스칼라, 파이썬에 대한 풍부한 APIs를 제공한다. 장점 맵리듀스(MapReduce)와 유사한 일괄 처리 기능 ..
Apache Storm Apache Storm은 분산형 실시간 처리 프레임워크로써, 노드마다 초당 수백만 개의 레코드를 처리하고 한 번에 하나씩 이벤트를 처리하는 기능이 있다. 그리고 1초의 지연마저도 큰 손실이 되는 매우 민감한 어플리케이션을 다루는데 사용되고, 추천엔진 제작, 의심스런 활동 트리거 등에 사용하고 있다. 또한 상태 저장 없이(stateless), 중요한 메타데이터 정보를 유지하기 위한 조정(coordinating)을 목적으로 주키퍼를 사용한다. 클러스터 구조 스톰은 마스터-슬레이브(master-slave)구조로 되어있고 님버스(nimbus)가 마스터이고, 수퍼파이저(supoervisor)가 슬레이브가 된다. 님버스(nimbus) : 스톰 클러스터 마스터노드로 클러스터 안에서 나머지 모든..
Nginx Nginx는 "동시접속 처리에 특화된 웹 서버 프로그램으로 Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다. 우분투 설치 sudo apt-get update sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring ## Nginx pakage 저장소 서명키를 다운로드 하고 저장 curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null # lsb_release 명령을 통해 운영체제와 배포판 이..
SU에서 EOF 사용시 내부 변수 처리 방법 $를 이용하면 변수값을 사용할 수 있는데, su에서 EOF 를 사용시 $가 인식되지 않았다.. 해결방법은 생각보다 간단했다.. 내부변수를 사용하려면 $ 변수 앞에 ''문자를 추가하여 \$ 이런 식으로 해야 문자를 인식하게 된다. sudo su -l user