CyberImagination BLOG 217

도커 공인 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

underscore 알아보기 (1)

안녕하세요.자바스크립트 라이브러리인 언더스코어에 다한 포스트를 하려고 합니다.매우 작은 용량과 간단한 사용이 장점이며자바스크립트로 array []나 object {}를 다룰때 필수적으로 필요한 라이브러리입니다.약 100여가지의 함수가 있지만 ES5, ES6를 거치면서 안쓰게 되는 함수도 있고 (ES5, ES6의 내장함수가 더 빠르기 떄문)쓰임이 겹치는 경우도 있습니다. 문장 몇개와 예제 하나면 이해가 되는 함수들이 있는 반면에 난해한 함수도 있습니다.활용도가 높은 함수 위주로 설명하겠습니다. 테스트를 진행할 샘플 데이터 입니다.var data = [ { "productName": "Change Gout", "mf_compony": "Jam3", "mf_country": "Canada", "date": "..

프론트엔드 2017.07.19

[네번째 이야기] Hadoop 장애 Test

Hadoop의 Fault Tolerance Test Hadoop HA 구성이 완료되고 장애발생에 따른 실제 동작을 확인하기 위해 Cluster 환경에서 NameNode와 임의의 DataNode 종료에 따른 결과를 확인하고자 합니다. 1. NameNode의 이중화 구성에 대한 장애 Test Active NameNode에서 장애발생에 의한 시스템 종료시 Standby NameNode가 Active로 승격을 통해 지속적인 서비스가 가능한지 확인한다 1) Active NameNode와 Standby NameNode의 동작상태 확인 2) Active NameNode 프로세스 강제종료 3) Standby NameNode가 Active mode로의 전환 확인 4) 장애발생 NameNode의 재실행 및 정상동작 확인 ..

카테고리 없음 2017.07.14

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