빅데이터 21

docker 이해

도커(Docker)가 무엇인지 간략하게 알아보려고 합니다. 도커는 응용 프로그램을 쉽고 빠르게 개발, 배포 및 실행하기위한 개방형 플랫폼입니다. LXC(LinuX Container)라는 커널 컨테이너 기술을 이용하여 만든 기술 중 하나로서 host를 공유하는 것과 어플리케이션이나 프로세스가 해당 컨테이너 안에서 샌드박스 처리되어 외부의 영향을 받을 일 없이 안전한게 구동하는 특징을 가집니다. 아키텍처를 보고 어떤 요소들로 구성이 되어있는지 그리고 우리가 잘 알고 있는 가상머신(VM)과 어떻게 다른지에 대해 알아보겠습니다. Docker의 아키텍쳐 Docker daemon : 도커 데몬은 호스트 머신에서 실행되고, 유저는 Docker client를 통해서 데몬과 상호작용합니다. client : 도커 데몬에 ..

빅데이터 2017.07.07

스마트의 시작, Ontology_3

“Ontology 활용 : Linked Open Data(LOD)” 오늘은 지난 포스팅에서 잠시 언급했던 LOD(Linked Open Data)를 중심으로 이야기 해보겠습니다. l LOD = Linked Data + Open Data 지난 포스팅에서 언급했던 대로 LOD는 기존 HTML로 이뤄진 Document Web에서 RDF와 OWL 등으로 이뤄진 Data Web으로의 변화의 과정에서 탄생한 녀석(?)입니다. - Document Web : URL을 통해 각각의 URL에 매칭된 화면을 기본단위로 제공 * URI : 화면[식별자]을 포함- Data Web : URL을 통해 각각의 URL에 매칭된 데이터를 기본단위로 제공 * URI : 클래스[이름 or 식별자] or 트리플 구조를 포함. 위 그림과 요약된..

빅데이터 2017.06.30

Spark 개발환경 구축 - Zeppelin Spark Interpreter에 HBase 연결하기

지난 시간에는 Intellij를 이용한 개발환경을 구축하였습니다. 자동완성 등을 이용하기 위하여 여전히 IDE툴로써 사용중에 있고, 실제 실행 테스트는 편리하게 Zeppelin을 사용하고 있습니다. 현재 개발환경에서 HBase에서 데이터를 가져와서 다루는 일이 필요하게 되었습니다. Zeppelin에 HBase Interpreter를 제공하는 것 같지만, 저는 Intellij에서 컴파일 한 결과를 Jar로 묶어서 활용도 할 것이기에 Spark Interpreter에 붙여보려고 시도하였습니다. 그런데 역시 알수없는 에러들과 함께 저의 진행을 막아섰던 경험을 했기에, 저같은 피해자가 없도록 그 내용을 공유하려 합니다. 먼저 Zeppelin을 사용하려면 설치부터 해야 하는데, 너무나 간단하기 때문에 패스하겠습니..

빅데이터 2017.06.23

[세번째 이야기] Hadoop Cluster 설치하기

Hadoop의 HA Hadoop 1.x에서 HDFS와 MapReduce를 통해 대량의 데이터를 분산 병렬처리 하면서 아쉬움이 있었다면 하나의 Name Node가 전체 클러스터를 관리하면서 SPOF(Single Point Of Failure)가 존재하며, 최대 4,000노드와 4만 Task까지만 확장이 된다는 것이었습니다. * Hadoop 1.x에 Secondary NameNode가 존재했지만 주기적으로 NameNode의 파일 시스템 이미지를 갱신하는 역할(체크포인트)로 NameNode의 백업 역할이 아니었습니다. 이후에 Hadoop 2.x 부터 NameNode 이중화(Active-Standby), Zookeeper를 이용한 ResourceManager 이중화를 지원하면서, 최대 10,000노드와 YARN..

빅데이터 2017.06.14

데이터 수집 – flume [2/2]

Apache Flume 저번 글에서는 간단하게 flume이 무엇인지 그리고 어떻게 사용되는지에 대해 알아보았습니다. 이번에는 이미 정해진 동작을 수행하는 flume이 아닌 사용자가 원하는 대로 구성을 할 수 있는 custom 형태의 source, sink를 구성 해보겠습니다. 위와 같은 형태로 구성을 해보고 실제 동작시켜 보는 것까지 하려고 합니다. 예제의 데이터 흐름은 아래와 같습니다. 1. Source는 클라이언트가 UDP서버로 동작하는 custom source에 키보드로 입력한 데이터를 받게 됩니다. 2. Channel은 source로부터의 데이터를 memory channel에 담게 됩니다. 3. Sink는 그리고 Channel에 담겨진 데이터를 Custom sink에서 읽어와 화면에 출력해줍니다...

빅데이터 2017.06.09

스마트의 시작, Ontology_2

“온톨로지의 활용” 앞선 포스팅을 통해 온톨로지가 무엇인지 개념적인 내용을 살펴보았기 때문에 오늘은 기억만 잠시 되살린 후, 온톨로지가 어떻게 활용되는지 살펴 보도록 하겠습니다.지난 시간의 내용을 되짚어 보면 온톨로지는 두 대상(개념)에 대해 공유된 개념(지식)을 표현한 명세이고, 그 기본구조는 아래와 같습니다. 그래서 일정한 Domain 내에서 온톨로지를 구현하게 되면 무수히 많은 대상들이 서로 연결되고 연결되어 아래 그림과 같이 복잡한 형태의 그래프 구조를 갖게 됩니다.컴퓨터는 이러한 구조를 통해 대상이 어떤 존재인지 파악하게 되는 것입니다. - 연관검색 기능 초기 온톨로지가 가장 많이 활용된 분야는 검색 분야였습니다. 기존 검색은 사용자가 입력한 검색어와 일치하는 내용만 결과로 출력해주는 구조였습니..

빅데이터 2017.06.02

Spark 개발환경 구축 - Scala, Intellij, Maven

Spark를 개발하려면 개발환경부터 구축을 해야 하는데, 대표적으로 많이 사용하는 IDE 툴에는 IntelliJ, Eclipse가 있습니다. 그 중에서 Scala 개발환경에 조금 더 인기가 있는 IntelliJ를 사용하려 합니다. 그리고 SBT(Simple Build Tool)을 사용하거나, Maven을 사용하는 방법이 있는데 여기서는 Maven 방식의 개발환경을 설명하려 합니다. (여기저기 찾아봐도 완벽하게 되는 개발환경을 찾을 수가 없어서... ) 간략하게 Maven을 선택한 이유는 1. SBT는 Maven에 비해 빠르고 효율적이지만 소스의 크기가 커지면 관리하기가 힘들다. 2. Maven은 일반적으로 많이 쓰여서 자료검색에 용의하다. 위의 2가지 이유로 Maven을 선택하였습니다. 저의 개발환경은 ..

빅데이터 2017.05.25

[두번째 이야기] 데이터 분산처리 시스템, Hadoop

이전 작성한 글에 이어서 빅데이터 처리 시스템 중 저장 시스템과 처리방식으로 널리 사용하고 있는 Hadoop에 대해 좀더 알아보려고 합니다. 은 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈소스 프레임워크로 저렴한 컴퓨터를 묶어 하나인 것처럼 사용할 수 있는 컴퓨팅 기술로 분산저장(HDFS) 기술과 분산처리 기술(MapReduce)이 주목을 받았습니다. HDFS (Hadoop Distributed Filesystem) Hadoop 네트워크에 연결된 아무 기기에나 데이터를 밀어 넣는 분산형 파일시스템으로, HDFS(Hadoop Distributed Filesystem)를 이용해 데이터를 다수의 기기들과 드라이브들에 저장하며 다수의 노드로 이뤄진 Hadoop 시스템에 자동적으로 중복되게 만듭니다. ..

빅데이터 2017.05.19

[첫번째 이야기] 빅데이터란?

시작하며.. 최근 빅데이터 관련 일을 진행하면서 Hadoop이나 NoSQL에 대해 살펴볼 수 있었습니다. 개인적으로는 새로운 경험의 시작이었고, 내용을 잊어버리기 전에 정리하고자 글을 작성하게 되었습니다. 빅데이터 기술이란, 기존 관계형 데이터베이스의 능력을 넘어서는 대량의 정형 또는 비정형의 많은 데이터로부터 가치를 추출하고 결과를 분석하는 기술과 비즈니스 프로세스에 내재화하여 적용하는 기술을 말합니다. 이 글에서는 빅데이터 처리 기술을 구현하기 위한 저장 시스템, 처리 방식 측면에서 많이 사용되고 있는 Hadoop에 대해 내용을 작성합니다. 빅데이터에 대해 다루기 전에 세가지 내용을 먼저 말씀드리고 싶습니다. 첫째, 데이터의 중요성 데이터의 중요성은 이미 모두가 알고있는 사실이고, 빅데이터 분석이라고..

빅데이터 2017.05.19

데이터 수집 – flume [1/2]

Apache Flume 빅데이터를 시작할 때 가장 기초가 되는 데이터 수집 부분에는 여러 오픈소스들이 존재합니다. 그 중에서 대체적으로 많이 사용되는 flume에 대해서 알아보려고 합니다. Flume을 간단하게 정의하자면 다양한 소스로부터 대량의 정보를 효율적으로 수집, 통합, 전송하는 시스템 입니다. Flume은 장애 발생시 데이터의 유실 없이 전송할 수 있는 신뢰성, agent의 손쉬운 추가 및 제거를 통한 시스템의 확장성, 간결한 구조를 가져 관리가 쉬운 용이성, 새로운 기능을 쉽게 추가 가능한 기능의 확장성을 장점으로 가지고 있습니다. 사용측면의 장점은 별다른 프로그래밍 없이 환경설정 파일의 설정만으로 데이터를 file, avro등으로부터 HDFS, Hbase, Hive등 에 저장할 수 있는 다양..

빅데이터 2017.05.12