빅데이터 21

클라우드 환경을 손쉽게 구축하기위한 DC/OS 알아보기

현대 웹개발은 모노리틱(Monolithic) 방식을 넘어 마이크로서비스(Microservice)를 지향하는 방식으로 넘어가고 있습니다. 단일 웹 어플리케이션이 아닌 여러가지의 서비스가 조합된, 어떻게 보면 더 복잡한 아키텍처일 수 있지만 이러한 문제점을 단순화하여 해결하려는 노력들이 있습니다. 다수의 장비 및 다수의 솔루션들이 복잡하고 다양한 커뮤니케이션에 의해 서비스되는 웹서비스의 아키텍처는 기존의 시스템 아키텍처로 커버하기는 어려운 점이 많은 상황입니다. 일반적인 서비스에서 사용되는 모노리틱 어플리케이션의 특징을 우선 알아보도록 하겠습니다. 모노리틱 어플리케이션 특징 - 하나의 ear 또는 war안에 모든 내용이 들어가 있음. - 재사용 가능한 부분은 sharing.jar와 같이 jar영역에 대해서만..

빅데이터 2018.01.12

간략하게 알아보는 추천시스템

이번에는 추천시스템에 대해 간략하게 알아보겠습니다. 추천시스템은 Content-based와 Collaborative Filtering으로 크게 두 가지로 나뉠 수 있습니다.Content-based는 말 그대로 추천하고자 하는 아이템에 대한 정보를 기반으로 추천하는 알고리즘입니다. 영화를 예로 들면 특정 배우 혹은 장르와 같은 아이템의 정보들을 기준으로 추천을 합니다. 많은 사용자의 이용 정보 없이도 충분히 추천이 가능하지만 모델링 방식에 따라 정확도가 많이 달라지고, 비슷한 아이템끼리만 추천이 가능하여 추천 범위가 제한되는 단점이 있습니다.Collaborative Filtering는 위와 같이 영화를 예로 들면 해리포터를 좋아하는 A와 성향이 비슷한 B역시 해리포터를 좋아 할 것이라는 것을 활용한 기법으..

빅데이터 2017.12.29

[Spark] Streaming에서 DataFrame Tip

이번 시간에는 Spark Streaming을 사용할 때 데이터를 처리하고 모으는 부분에서의 팁을 공개하려고 합니다. Spark Streaming으로 프로그램을 하면 보통 sql을 사용하기 위하여 DataFrame에 많이 넣으실 텐데요. 오늘은 그 부분에 대한 Tip을 공개합니다. 한줄로 팁을 요약하면, "DataFrame에 테이블의 데이터를 유지시키고, 추가 시키자!" 입니다. 보통 Dataframe의 createOrReplaceTempView 함수를 쓰면, 기존의 내용은 날라가고, 현재의 내용만 남게 됩니다. 그걸 방지하고자 다음과 같은 함수를 미리 선언합니다. 사실상 이 함수가 첫번째 핵심입니다. 2개의 DataFrame을 하나로 합쳐줍니다. 그리고 또 하나의 변수가 있습니다. "Broadcast"라..

빅데이터 2017.11.30

Apache Phoenix 활용

Apache Phoenix 활용 Apache Phoenix는 NoSQL의 한 종류인 HBase 위에 관계형 데이터베이스에서 사용하는 SQL layer를 구현한 오픈 소스의 개발 도구입니다. 이번 포스팅에서는 Apache Phoenix의 주요 특징과 Phoenix를 웹서비스 어플리케이션에 적용해 보면서 느꼈던 장점 및 한계점과 활용방안에 대해 알아보겠습니다. 1.1 Apache Phoenix의 특징Phoenix는 우리에게 익숙한 SQL 문법을 사용하여 HBase 데이터에 접근한다는 것과 HBase의 Java 클라이언트 API 대신 표준 JDBC API를 사용한다는 특징을 갖고 있습니다. 이를 통해 테이블 생성, 데이터 삽입, 데이터 쿼리 등의 모든 CRUD 및 DDL 작업을 수행할 수 있습니다. SQL과 ..

빅데이터 2017.11.28

NoSQL 데이터 모델링

NoSQL 데이터 모델링 기존에 우리가 많이 사용하고 있는 RDMBS와 NoSQL은 전혀 다른 성격을 갖고 있고, 모델링 접근 방식 또한 다릅니다. 이 글에서는 먼저 NoSQL의 특징에 대해 알아보고, NoSQL의 데이터 모델링 패턴과 데이터 모델링 절차에 대해 알아보겠습니다. 1.1 NoSQL 특징NoSQL은 RDBMS와 다른 형태의 데이터 저장 구조를 총칭합니다. NoSQL의 특징을 RDBMS와 비교하여 살펴보겠습니다. 1.1.1 RDBMS vs NoSQL 특징 비교 구분 RDBMS NoSQL 데이터의 관계 Foreign Key 등을 이용하여 데이터의 관계를 정의한 후 JOIN 등의 관계형 연산을 수행 데이터 간의 관계를 정의하지 않음 확장성 데이터의 무결성 및 정합성 보장하기 위해 정규화된 데이터 ..

빅데이터 2017.10.30

HBase 개념 정리

HBASE 란? 1.1 HBase 소개 Hadoop의 HDFS위에 만들어진 분산 컬럼 기반의 데이터베이스 입니다. 구조화된 대용량의 데이터에 빠른 임의접근을 제공하는 구글의 빅 테이블과 비슷한 데이터 모델을 가지며, HDFS의 데이터에 대한 실시간 임의 읽기/쓰기 기능을 제공합니다. 사용자는 HBase나 HDFS에 직접 데이터를 저장 할 수 있고, 사용자는 데이터를 읽고 접근하는 것은 HBase를 통한 임의접근을 이용한다. 1.2 HBase 특징 • 선형 확장성이 있다. • 읽기와 쓰기의 일관성을 제공 • 하둡과 연계하여 source가 되기도 하고 destination이 되기도 한다. • 클러스터를 통한 데이터의 복제 제공 1.3 Architecture 1.3.1 Master Server • Region..

빅데이터 2017.09.21

NoSQL 개념 정리

NoSQL 빅데이터, AI, 딥러닝 등 기술적인 화두들의 공통점으로 대용량 데이터에 대한 저장을 생각할 수 있습니다. 그 중에서도 NoSQL은 기존의 RDBMS를 사용함으로 해서 발생할 수 있는 문제들의 해결방안으로 손 꼽을수 있을 것입니다. 1.1 등장 배경웹 2.0 환경과 빅데이터가 등장하면서 RDBMS에서의 '데이터를 처리하는 데 필요한 비용의 증가' 이슈를 해소하기 위해 등장하였습니다.관계형 데이터베이스를 사용하면서 기하급수적으로 증가하는 데이터의 저장을 위해서는 장비의 성능이 좋아야하고 이를 위해서 하드웨어적으로 큰 비용이 발생한다. 1.2 특징 1.2.1 분산저장 • 데이터와 트래픽이 증가함에 따라 기존의 수직적 확장에서 장비의 수를 늘리는 수평적 확장(Scale-out) 방식 • 샤드 키(S..

빅데이터 2017.09.21

도커 공인 ip 설정

docker를 사용하다 보면 컨테이너가 외부에서 실제 여러 머신이 동작하듯이 사용해야 할 경우가 생기곤 합니다. 그래서 이번 포스팅은 컨테이너에 정적으로 공인 IP를 할당하는 방법에 대해 알아보고 실제 해보았을 때 생기는 불편할 수 있는 점에 대해서 다루겠습니다. docker 1.12.3버전을 이용하였습니다. Host machine ip : 2**.***.***.36, container ip : 2**.***.***.37 Docker network 생성 및 컨테이너 실행 docker에서 기본적으로 제공되는 network에서 macvlan이 사용이 가능해서 구성해보려고 합니다. 먼저 docker network를 생성해줍니다. Network가 정상적으로 생성이 완료된 것을 확인했다면 실행을 해봅니다. 실행 ..

빅데이터 2017.08.04

스마트의 시작, Ontology_4

“Ontology 관련 용어정리” 오늘은 Ontology를 공부하다 보면 자주 접하게 되는 다양한 용어(도구)들을 정리해보는 시간을 갖도록 하겠습니다. Ontology가 뭔지, 어떻게 적용할 수 있는지 이런 것들로 정신이 없을 때, 덤(?)으로 우리 앞에 나타나 더 정신 없게 만들어주는 이들. 바로 RDF, OWL, SKOS,... 등의 다양한 용어들입니다. 이번 기회에 잘 정리해 둔다면 명확한 구분뿐만 아니라 실제 구현을 할 때 유용하게 선택적으로 사용할 수 있을 것입니다. l 메타데이터 언어 : RDF , RDFS, OWL, ... - RDF (Resource Description Framework) RDF는 W3C에서 웹에서 Ontology의 구현을 목적으로 개발한 메타데이터 언어(1999.02)로..

빅데이터 2017.07.26

Storm + Kafka 연동하기

실시간 처리를 위하여 Storm을 분석하고 있습니다. Spark가 배치성 처리를 위한다면, Storm은 더욱 실시간성 처리가 가능할 것 같아서 분석중입니다. 실시간 처리를 하려면 일단 Kafka와 연결을 해야하는데, Storm의 홈페이지에는 별로 자세한 내용이 없고, 구글검색을 해도 정확하게 찾는 내용이 없는 것 같아 직접 글을 써볼까 합니다. 저의 개발환경은 Spark와 마찬가지로 Intellij의 Maven을 활용합니다. 새로운 java 프로젝트를 만듭니다. 저는 1.8 버전으로 만들었습니다. 그리고 pom.xml에 Dependency를 추가합니다 . Storm으로 개발 할 것이기 때문에, storm-core를 넣고, 지난 spark때 사용했던 maven-shade-plugin도 추가합니다. org...

빅데이터 2017.07.21