전체 글 1332

Apache Spark 클러스터 구조

Apache Spark Cluster 구조 스팍의 기본 구조는 다음과 같다. 스팍 프로그램은 일반적으로 “Driver Program”이라고 하는데, 이 Driver Program 은 여러개의 병렬적인 작업으로 나뉘어져사 Spark의 Worker Node(서버)에 있는 Executor(프로세스)에서 실행된다. 1. SparkContext가 SparkClusterManager에 접속한다. 이 클러스터 메니져는 스팍 자체의 클러스터 메니져가 될 수 도 있고 Mesos,YARN 등이 될 수 있다. 이 클러스터 메니저를 통해서 가용한 Excutor 들을 할당 받는다 2. Excutor를 할당 받으면, 각각의 Executor들에게 수행할 코드를 보낸다. 3. 다음으로 각 Excutor 안에서 Task에서 로직을 수..

Apache Spark 설치 하기

Apache Spark 설치 하기 조대협 (http://bcho.tistory.com) Spark 설치 하기 1. 스팍 홈페이지에서 다운로드. 다운로드시 Pre-built in Spark을 골라야 함. 여기서는 Hadoop 2.6용으로 빌드된 스팍을 선택한다. 2. 스팍 쉘을 실행 해보자 인스톨 디렉토리에서, %./bin/pyspark 을 실행하면, 위와 같이 파이썬 기반의 스팍 쉘이 실행됨을 확인할 수 있다. 3. 로깅 레벨 조정 및 간단한 스팍 예제 디폴트 로깅은 INFO 레벨로 되어 있기 때문에, 쉘에서 명령어를 하나라도 실행하면 INFO 메세지가 우루루 나온다. (몬가 할때 결과 값보다, 오히려 INFO 메세지가 많이 나온다.)그래서, conf/log4j.properties 파일을 conf/log..

Apache Spark이 왜 인기가 있을까?

스팍에 대한 간단한 개념과 장점 소개 조대협 (http://bcho.tistory.com) 스팍의 개념과 주요 기능 요즘 주변에서 아파치 스팍을 공부하는 사람도 많고, 스팍을 기반으로한 Zeppelin을 이용하여 데이타 분석을 하는 경우도 많아서, 오늘부터 다시 Spark을 들여다 보기 시작했습니다. 스팍은 예전에도 몇번 관심을 가진적이 있는데, Storm과 같은 데이타 스트리밍 프레임웍에서 Storm과 같이 언급 되기도 하고, 머신 러닝 프레임웍을 볼때도 스팍 ML 라이브러리 기능이 언급 되기도 하고, 예전 모 회사의 데이타 분석 아키텍쳐를 보니, 카산드라에 저장된 데이타를 스팍/Shark라는 프레임웍으로 분석을 하더군요. 또 누구는 메모리 기반의 하둡이라고도 합니다. 스팍의 정의를 내려보면 한마디로범..

Zepplin (제플린) 설치하기

제플린 설치하기 (맥북 기준 - Darwin 커널 기준) 1. 선행 설치 git 설치maven 3.3 설치JDK 설치 (1.8 설치) 2. 소스코드 다운로드% git clone https://github.com/NFLabs/zeppelin 위와 같이 코드가 다운로드됨을 확인할 수 있음 3. 컴파일코드가 다운되면 컴파일을 해야 하는데, 여기서는 간단한 테스트를 위해서 클러스터 모드가 아닌 로컬 모드로 설치를 진행한다.% mvn install -DskipTests 이때 주의할점은 맥에서는 mvn으로 설치할때, 몇몇 의존성 모듈 설치시 루트 권한을 필요로 하는 것이 있기 때문에 % sudo mvn install -DskipTests 를 이용하여 루트 권한으로 설치한다. 설치시 다음과 같은 에러가 나올 수 있다..

40대에 다시 도전을 시작합니다.

40대에 새로운 도전을 시작합니다. 1990년대의 벤처, 첫 외국 회사 BEA, NHN, 오라클, 마이크로소프트,사업, 중간 중간 프리렌서 까지,그리고 대기업까지. 40대에 올때까지 정말 파란만장한 시절은 보낸거 같습니다. 남들이 보면 화려하다고 할 수 있지만 와이프한테 월급도 제대로 못갔다 주고 힘들었던 시절도 많았습니다. 오랜 여행끝에 대기업에 안착을 했습니다. 2년 반이지만 정말 재미있었습니다. 이번에는 마지막이라고 안착하고 안정적인 삶을 살아 보려고 결정했습니다. M&A도 해보고, 박사님들 스카웃 할려고 미국 로드 투어도 해보고고, 글로벌 회사에서 치프 아키텍트라는 것도 해봤습니다. 짧은 시간 동안 설계한 서버 아키텍쳐만 수십개이고, 돌아가는 서버 인스턴스만 몇 백개 같습니다.그런데 몬가 이상하더..

사는 이야기 2015.05.12

린스타트업 - #3 성장 엔진 이론

성장엔진 린 스타트업에서는 성장 엔진이라는 개념을 사용하는데, 이 성장 엔진이란, 린 스타트업에 따르면 "회사가 지속적으로 성장을 달성하는데 쓰는 메커니즘이다. "린스타트업에서 성장엔진을 다음과 같은 변수로 정의하고 있다.기본적으로 스타트업의 성장은 사용자가 늘어남을 전재로 하되, 사용자가 늘어나는 것 뿐만 아닌 비지니스 모델에 따라서 다음과 같은 지표를 추가 지표로 사용한다. 1. 재방문율 : 복합 비율로 측정 대부분의 서비스들에 해당하는 지표로, 기존 사용자의 재 방문율이다.일반적으로는 액티브 사용자를 사용하지만, 린스타트업 프레임웍에서는 "복합 비율"이라는 성장 변수를 사용한다. 재방문율 성장 엔진의 기본 개념은 신규 고객 유치율 > 가입 해지율 이 넘는지를 살펴본다. 가입 해지율은 명시적으로 계약..

린 스타트업 #2-린 스타트업 프로세스에 대한 개요

린 스타트업의 프로세스 개요일단 현재 이해한것 까지 중간 정리, 린스타트업은 도요타의 린 방법론을 기반으로 IMVU의 CTO인 에릭리스가 정리한 스타트업의 프로세스이다.기본적으로 스타트업의 제품 및 서비스 개발의 행위를 학습으로 정의하고 있으며, 빠르게 최소한의 기능을 가지고 있는 서비스를 빠르게 개발하여 시장에 릴리즈한 후 고객의 반응을 수치화한 데이타를 기반으로, 판단하여 이를 기반으로, 제품의 개발 방향이 맞는지를 학습하여 끊임없이 서비스를 수정/개발해 나가는 프로세스이다.전체적인 프로세스를 도식화 하자면 다음과 같다. ※ 이 그림은 일반적으로 소개되는 린스타트업의 프로세스가 아니라, 본인이 이해하고 내용을 가감한 프로세스이다. 가설과 구현 먼저 가설을 세우고, 이 가설(아이디어)를 기반으로 서비스..

스타트업에서 일하기 위한 준비

스타트업에서 일하기 위한 준비 멀쩡하게 국내 최고 기업중의 하나인 기업을 다니다가, 스타트업의 일원으로 몬가를 만들어 내겠다는 생각에, 안정적이고 좋은 직장을 박차고 나왔다. 마흔이 넘은 나이에, 스타트업이라니, 누가 보면 제정신이 아니라고 할 수 도 있겠지만… 이번이 인생에 있어서 마지막 도전이 아닐까 하는 생각이 든다. 해도 후회, 안해도 후회 할거면 해보고 후회하자는 결정을했다.지금까지 일해온 방식이, 최종 의사 결정자이기 보다는 의사 결정을 수행하는 입장에 있었기 때문에, 새로운 일은 나름대로 도전이다더군다나, 대기업이나 벤더의 경험에서 스타트업이라는 무한의 정글로 도전을 하면서, 다른 비지니스 모델과 환경, 그리고 모바일 및 스타트업의 전성 시대에서, 생각하는 방식이 다른 젊은 사람들과의 일은 ..

린스타트업 #1 - 혁신회계에 대한 메모

린 스타트업 - #혁신 회계에 대한 메모 1. 지표를 정의하고 가치있는 지표 향상에 집중하자 먼저 어떤 지표를 산출할 수 있는지를 결정하고 나면, 다음으로는 어떤 지표가 비지니스에 대한 핵심 지표인지를 판단해야 한다. 신규 사용자 증가율인지, 재 방문율, 유료화율인지등을 판단한 후에, 해당 지표를 높일 수 있는 쪽으로 서비스를 개선해야 한다.초기에 지표를 제대로 정하는 것이 중요하다. 아니면, 허무 지표가 될 수 있기 때문이다. 실제 고객의 반응이 지표를 통해서 모니터링 되지 않을 수 있다. "다음 두 스타트 업을 비교해보자, 첫번째 회사는 현재 상태의 지표가 명확하다. 그리고 이 지표를 어떻게 향상 시킬지 명확한 가정과 이 가정을 테스트하기 위한 실험 방법을 알고 있다.두번째 스타트업은 모두 모여 앉아..

분산 코디네이터 Zookeeper(주키퍼) 소개

ZooKeeper란 무엇인가?조대협 (http://bcho.tistory.com) 소개 분산 시스템을 설계 하다보면, 가장 문제점 중의 하나가 분산된 시스템간의 정보를 어떻게 공유할것이고, 클러스터에 있는 서버들의 상태를 체크할 필요가 있으며 또한, 분산된 서버들간에 동기화를 위한 락(lock)을 처리하는 것들이 문제로 부딪힌다. 이러한 문제를 해결하는 시스템을 코디네이션 서비스 시스템 (coordination service)라고 하는데, Apache Zookeeper가 대표적이다. 이 코디네이션 서비스는 분산 시스템 내에서 중요한 상태 정보나 설정 정보등을 유지하기 때문에, 코디네이션 서비스의 장애는 전체 시스템의 장애를 유발하기 때문에, 이중화등을 통하여 고가용성을 제공해야 한다. ZooKeeper는..

grpc 설치하기

Google RPC 설치하기(조대협 http://bcho.tistory.com) 지난 GRPC 소개에 이어서 오늘은 JAVA에서 GRPC를 사용하기 위한 설치 방법을 설명한다. https://github.com/grpc/grpc-common/tree/master/javahttps://github.com/grpc/grpc-commonhttps://github.com/grpc/grpc-common/blob/master/java/javatutorial.mdhttps://github.com/grpc/grpc-java 글들을 참고하였으며, 컴파일 환경 설정등을 위해서 생각보다 시간이 많이 소요된다. (삽질,Visual Studio 설치 포함 한 2~3시간 걸린듯) grpc hello world / java grp..

프로그래밍 2015.04.02

grpc (google rpc)에 대한 분석 #1

GRPC 분석 #1 앞글에서도 간단하게 GRPC에 대해서 소개했는데, 제법 괜찮은것 같아서 조금 더 분석해보기로 결정하였다.주목할만한 특징 중의 크게 두가지가 있다. 모바일 지원 여부먼저, 모바일이 지원된다. 안드로이드나, iOS (Object-C)를 지원하기 때문에, 모바일 클라이언트에서 호출이 가능하고, 바이너리 프로토콜을 사용하며, 하나의 Connection으로 RPC 호출을 처리하기 때문에, JSON/HTTP REST에 비해서 네트워크 대역폭 소모가 적고, 매번 커넥션을 열어야 하는 부담이 없기 때문에, 효율적이다. (속도는 당연히 빠를듯) 확인을 해봐야 겠지만, 양방향 스트리밍을 지원한다는 것을 봐서는 푸쉬같이 클라이언트쪽으로 메세지를 쏘는 기능도 가능할듯 하다. Google Protocol B..

프로그래밍 2015.04.01

구글의 HTTP 기반의 RPC 프로토콜 GRPC

간단한 GRPC 소개 어제 오늘 약간 커뮤니티를 달군 내용 중의 하나가 구글에서 새롭게 발표한 GRPC라는 개념이다. GRPC는 한마디로 이야기하자면, 예전 자바 RMI나, CORBA의 웹 버전 정도? RPC란, Remote Procedure Call의 약자로, 원격에 있는 함수를 호출해주는 기능을 이야기 한다.RPC는 일반적으로, request parameter와 response parameter를 알아야 하기 때문에, 양쪽의 인터페이스 규약을 IDL 등의 언어로 정의한후, 해당 프로그래밍 언어가 부를 수 있는 형태의 코드로 생성을 해줘야 하는데, 이를 Skeleton과 Stub코드라고 한다. HTTP 기반의 REST가 유행하면서 RPC는 많이 사라 졌는데, 반대로 REST의 경우, 호출 하는 para..

프로그래밍 2015.03.31

나이브 베이즈 분류 (Naive Bayesian classification) #1 - 소개

나이브 베이즈 분류 (Naive Bayesian classification) #1 - 소개조대협 (http://bcho.tistory.com) 지금 부터 소개할 알고리즘은, 머신러닝 알고리즘 중에서 분류 알고리즘으로 많이 사용되는 나이브 베이스 알고리즘이다. 배경 지식나이브 베이스 알고리즘을 이해하려면 몇가지 배경 지식이 필요하다. 베이스 정리먼저 베이스 정리를 보면, 매개 변수, x,y가 있을때, 분류 1에 속할 확률이 p1(x,y)이고, 분류 2에 속할 확률이 p2(x,y)일때, p1(x,y) > p2(x,y) 이면, 이 값은 분류 1에 속한다.p1(x,y) < p2(x,y) 이면, 이 값은 분류 2에 속한다.나이브 베이스 알고리즘은 이 베이스의 정리를 이용하여, 분류하고자 하는 대상의 각 분류별 확..

마이크로서비스 아키텍쳐(MSA)는 선택이 아니라 필수다

마이크로서비스 아키텍쳐에 대한 소고 간만에 낚시성 제목을 달아봤는데, MSA (마이크로 서비스 아키텍쳐)가 필수라는 이야기는 꼭 틀린말이라고 볼 수 는 없습니다. 특히나 개발팀의 규모가 큰 경우나, 지리적으로 개발팀이 나눠져 있는 경우에는 서비스 단위로 나눠서 각 팀이 서비스를 개발하고, 독립된 기술과 개발 체계를 가지면서 빠르게 개발해 나가는게 효율적이기 때문에, 규모가 어느정도 되는 팀에서는 효율성이 높습니다. 중앙에서 통제할 필요 없이, 각자가 알아서 설계하고, 만들고, 테스트 하고 운영하기 때문입니다.이것을 분산 거버넌스라고 하는데, 관리나 의사결정의 권한을 중앙의 팀이 중앙 통제하지 않고, 각자의 팀에 자율적으로 맏기고, 책임도 맏긴다는 이야기 입니다. 그러면 분산 거버넌스를 하면,중앙 거버넌스..

아키텍쳐 문서화는 어떤 도구를 사용하는게 좋을까?

아키텍쳐 문서화는 어떤 도구를 사용하는게 좋을까?조대협(http://bcho.tistory.com) 제 현재 본업은 아키텍트 입니다. 주로 시스템을 설계하는 역할을 하는데, 이 아키텍쳐 문서를 주로 PPT를 사용합니다. 문서는 워드로 만드는게 좋을 수 도 있고, EA나 StarUML등등 많은 툴이 있는데, 굳이 PPT를 사용하는 이유를 적어놓고자 합니다.사실 예전에는 MS WORD로 설계문서를 만들었습니다. 만들어 놓으면 멋도 있고, 자세한 내용 표현이 가능해서 탐독하면서 이해하기도 좋습니다. 그런데, 고객사의 요구 때문에, PPT로 바꾼후, 거의 습관처럼 PPT로 아키텍쳐 문서를 만들다 보니, 몇가지 장점이 있습니다. 1. PPT 는 표현에 제약이 없다.아키텍쳐 디자인은 특성상 많은 다이어그램과 노트등..

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 (API GATEWAY) #2 - API 게이트웨이 기반의 디자인 패턴

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 #2 API 게이트웨이 기반의 디자인 패턴조대협 (http://bcho.tistory.com) API 게이트 웨이는 여러개의 엔드포인트를 설정하고, 각 엔드포인트 마다 메세지 흐름을 워크 플로우 엔진 설정을 통해서 API 에 대한 Mediation, Aggregation 설정을 할 수 있는 미들웨어 이다. 쉽게 말하면 설정과 프로그래밍이 가능한 툴일 뿐이다. 그래서, API 게이트 웨이를 도입한다고 게이트웨이가 재 역할을 하는 것이 아니라, 게이트웨이 를 이용하여 적절한 게이트 웨이 아키텍쳐를 설계해야 한다. 여기서는 API 게이트 웨이를 이용한 아키텍쳐 설계시 참고할 수 있는 디자인 패턴에 대해서 소개 한다. ※ 이 패턴들은 예전에 ESB 기반으로 ..

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 (API GATEWAY)

MSA 아키텍쳐 구현을 위한 API 게이트웨이의 이해 #1조대협 (http://bcho.tistory.com) MSA(마이크로 서비스 아키텍쳐, 이하 MSA)와 함께 근래에 떠오르고 있는것이 API 게이트 웨이이다. API 게이트웨이는 API서버 앞단에서 모든 API 서버들의 엔드포인트를 단일화하여 묶어주고 API에 대한 인증과 인가 기능에서 부터 메세지에 따라서 여러 서버로 라우팅 하는 고급기능 까지 많은 기능을 담당할 수 있다.API 게이트웨이의 시작은 MSA가 SOA(서비스 지향 아키텍쳐)에서 시작한것 처럼 ESB (Enterprise Service Bus)에서 부터 시작 되었다. 그래서 ESB의 대부분의 컨셉을 많이 승계했는데, ESB의 실패와 단점을 보완해서 만들어진 사상이 API 게이트웨이이다..

초등학교 입학준비 - 1학년 준비물

초등학교 1학년 준비물조대협(http://bcho.tistory.com)오늘 초당학교 선생님 김지나 선생님의 초등학교 1학년 학부모를 위한 특강중 정리 내용 가정통신문용 플라스틱 팩입학 후 주로 3월달에는 개인 정보 동의서등 각종 가정 통신문등이 많은데, 주위가 부족한 1학년등은, 아무데나 가정 통신문을 끼워오거나 해서 찢어지거나 잃어 버리는 수가 많다. 반대로 가정에서 도장등을 찍어서 일부만 보내는 통신문의 경우에는 부주의로 잃어 버리는 수가 많기 때문에, 얇은 플라스틱 클리어 홀더에 “가정통신문” 이라고 크게 붙이고 아래에 이름을 쓴 홀더를 가지고 다니면 잃어 비릴 일이 적다.가정통신문은 바로 다음날가정 통신문은 나가면 보통 몇일의 기간을 주지만 담임 선생님 입장에서는 행정일 이기 때문에 바로바로 챙..

머신러닝 프레임웍에 대한 간단 메모

머신 러닝 프레임웍에 대한 간단 정리 머신 러닝을 다시 시작해서 보다 보니 어떤 언어로 개발을 해야 하는지 의문이 들어서 페이스북 Server Side architecture 그룹에 올렸더니, 좋은 정보가 많이 들어왔다.Matalab이나 R과 같은 언어는 수학 라이브러리가 풍부해서, 주로 모델을 만들어서 시뮬레이션 하는데 많이 사용되고Python이 수학 라이브러리가 풍부해서 그런지 ML 부분에서 많이 사용되는데, Production 까지 올라가는 경우는 잘 못본거 같고, 주로 Python으로 모델을 프로토타이핑 하는 수준으로 사용되는 것으로 보인다. 아직까지 자세히는 보지 못했지만, 자바의 Spark이나 Mahout과 같은 분산 환경 지원성이 약하고, 언어의 특성상 다른 언어보다 성능이 떨어져서, 실제 ..

Numpy Install

NumPy 설치 하기 파이썬으로 머신 러닝을 구현하기 위해서는 수학 라이브러리인 numpy가 필요하다 설치는 http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 에서 *.whl 파일을 다운로드 받은후pip install numpy-1.9.2rc1+mkl-cp27-none-win_amd64.whl (64 비트 기준)으로 설치 하면 된다. 설치후 확인을 위해서는 위와 같이 from numpy import * 를 한후에, random.rand(4,4)가 제대로 실행되는지 확인하자 참고머신러닝이나 빅데이타 분석을 위해서는 NumPy 뿐만 아니라 matplot등 다양한 수학 모듈을 깔아야 하는데, 방화벽등이 있거나 하면 깔기가 매우 까다롭다. (의존성 관계도 복잡하고). 그래서..

REST JWT(JSON Web Token)소개 - #2 node.js에서 JWT 사용하기

REST JWT(JSON Web Token)소개 - #2 node.js에서 JWT 사용하기조대협 (http://bcho.tistory.com) Jwt-simple을 이용한 node.js에서 JWT 토큰 사용하기앞에서 http://bcho.tistory.com/999 JWT 토큰에 대한 개념에 대해서 간략하게 알아보았다. 그러면,실제로 JWT 토큰을 어떻게 생성하고 파싱하는 지를 node.js를 샘플을 통해서 알아보도록 하자.시작부터 말하자면. 너무 쉽다. 쉬워도 너무..!!node.js에는 여러가지 JWT 라이브러리가 있지만 그중에서 가장 사용이 편리한 라이브러리는 jwt-simple 이라는 라이브러리가 있다. 먼저 npm을 이용해서 해당 패키지를 설치한 후에 다음과 같은 코드를 작성한다.var jwt ..

REST JWT(JSON Web Token)소개 - #1 개념 소개

JWT(JSON Web Token)을 이용한 API 인증 - #1 개념 소개조대협 (http://bcho.tistory.com) REST API에 대한 보안과 인증이 화두가 되면서 많이 언급되는 것이 OAuth인데, 근래에 들어서 화두가 되고 있는 것이 JWT (JSON Web Token)이라는 표준이다. Claim기반 토큰의 개념 OAuth에 의해서 발급되는 access_token은 random string으로 토큰 자체에는 특별한 정보를 가지고 있지 않는 일반적인 스트링 형태 이다. 아래는 페이스북에서 발급된 access_token의 형태로 일반적인 문자열 형태임을 확인할 수 있다. API나 서비스를 제공하는 서버 입장에서 그 access_token을 통해서 사용자에 연관된 권한(예를 들어 scope..

분산 대용량 큐-Apache Kafka에 대한 검토

분산 대용량 큐-Apache Kafka에 대한 검토 내용 정리 실시간 빅데이타 분석 아키텍쳐를 검토하다가 아파치 스톰을 보다보니, 실시간 데이타 스트림은 큐를 이용해서 수집하는 경우가 많은데, 데이타의 양이 많다 보니 기존의 큐 솔루션으로는 한계가 있어서 분산 대용량 큐로 아파치 카프카(Kafka)가 많이 언급된다.그래서, 아키텍쳐를 대략 보고, 실효성에 대해서 고민을 해봤는데, 큐의 기능은 기존의 JMS나 AMQP 기반의 RabbitMQ(데이타 기반 라우팅,페데레이션 기능등)등에 비해서는 많이 부족하지만 대용량 메세지를 지원할 수 있는 것이 가장 큰 특징이다. 특히 분산 환경에서 용량 뿐 아니라, 복사본을 다른 노드에 저장함으로써 노드 장애에 대한 장애 대응 성을 가지고 있기 때문에 용량에는 확실하게 ..

Apache Storm을 이용한 실시간 데이타 처리 #6 –Storm 그룹핑 개념 이해하기

대충보는 Storm #6-Apache Storm 그룹핑 개념 이해하기 조대협 (http://bcho.tistory.com) 지금까지 컴포넌트간의 경로 라우팅, 즉 Spout 에서 Bolt간, Bolt에서 Bolt간 경로를 설정하는 방법에 대해서 알아보왔다.그렇다면 각 컴포넌트간 라우팅을 할때 그 안에 있는 Task간에는 어떻게 상세하게 라우팅이 될까? Storm에서는 이 Task간의 라우팅을 정의하기 위해서 Grouping이라는 개념을 사용한다. Shuffling가장 간단한 라우팅 방법으로 Bolt A에서 Bolt B로 라우팅을 한다고 했을때, Bolt A내의 있는 Task가 Bolt B에 있는 Task중 아무 Task로 임의로(랜덤하게) 라우팅 하는 방식이다. FieldBolt A에 있는 Task에서 ..

Apache Storm을 이용한 실시간 데이타 처리 #5 –Storm의 병렬/분산 처리

대충보는 Storm #5-Apache Storm 병렬 분산 처리 이해하기 조대협 (http://bcho.tistory.com) Storm에 있는 Spout과 Bolt들은 여러개의 머신에서 어떻게 나눠서 처리될까? Storm 클러스터는 여러대의 분산된 서버에서 운용되기 때문에, 당연히 Spout과 Bolt도 나눠서 처리된다 그렇다면 이런 Storm의 병렬 처리 구조는 어떻게 되는 것일까?이 글에서는 Spout과 Bolt를 병렬로 처리하는 Storm의 구조에 대해서 알아보도록 한다.Storm의 병렬 처리를 이해하기 위한 개념Storm의 병렬 처리를 이해하기 위해서는 몇가지 개념을 정리해야 한다. Node,Worker,Exectutor,Task 이 네 가지 개념을 이해해야 한다. NodeNode는 물리적인 서..

Apache Storm을 이용한 실시간 데이타 처리 #4 –소개와 기본 개념

대충보는 Storm #4-Apache Storm 특징과 기본 개념 조대협 (http://bcho.tistory.com) 지금까지 Storm에 대해서 이해하기 위해서, 실시간 스트리밍 서비스의 개념에 대해서 알아보고 간단한 HelloStorm 애플리케이션을 제작해서, 싱글 클러스터 노드에 배포해봤다. 대략 실시간 스트리밍이 무엇이고, Storm을 이용해서 어떻게 개발하는지에 대해서는 어느정도 이해를 했을 것이라고 생각한다.그러면 지금까지의 경험을 조금 더 체졔적으로 정리해서 Storm에 대해서 이해해보도록 하자. 이번에는 Storm에 대한 개념과 아키텍쳐 구조에 대해서 알아보겠다. Storm의 특징Storm을 실시간 스트리밍을 처리하기 위한 서버이자 프레임웍이다. 그렇다면 이 Storm이 다른 스트리밍 처..

Apache Storm을 이용한 실시간 데이타 처리 #3 -Storm 클러스터 설정과 배포

대충보는 Storm #3-Storm 싱글 클러스터 노드 설치 및 배포조대협(http://bcho.tistory.com) 지난번에는 간략하게, Storm을 이용한 HelloStorm 애플리케이션을 개발용 클러스터인 Local Cluster에서 구동해봤다. 이번에는 운영용 클러스터를 설정하고, 이 운영 클러스터에 지난번에 작성한 HelloStorm 토폴리지를 배포해보도록 한다. Storm 클러스터의 기본 구조Storm 클러스터를 기동하기 전에, 클러스터가 어떤 노드들로 구성이 되는지 먼저 알아보도록 하자 Storm 클러스터는 기본적으로 아래와 같은 3가지 구성요소로 구성이 되어 있다.먼저 주요 노드인 Nimbus와 Supervior 노드에 대해서 알아보자, Nimbus와 Supervisor 노드는 각각 하나..