본문 바로가기

Big Data

elastic stack #3 logstash 소개 & quick start #Logstash란? 공식페이지에서는 data collection engine 라고 소개하고 있다. 즉, 데이터를 수집하여 전달하는 역할을 하는 도구이다. 데이터를 그대로 전달할 수 도 있고, 데이터를 가공하여 전달할 수 있다. 여러 플러그인을 통해 다른 시스템과의 호환성도 좋다. 주로 Elasticsearch와 함께 쓰인다. #Logstash 설치 https://www.elastic.co/downloads/logstash 에서 다운받아 압축을 푼다. 이게 설치 끝이다. 데이터를 수집하는 역할을 하기 때문에 주로 application server의 로그를 저장한다는 가정하에 각 server에 설치하여 동작하도록 하는 구조이다. 일단 다음 포스팅으로 ELK Stack을 사용하여 web server 의 로그.. 더보기
elastic stack #2 elasticsearch 설치 & quick start 1. elasticsearch 설치 정말 쉽게 설치가 가능하다. https://www.elastic.co/downloads 에서 elasticsearch를 다운받아 압축을 해제한다. 글 작성 기준 최종 버전인 5.2 로 예제를 작성할 것이다. JAVA 1.8이 기본적으로 설치가 되어있어야 한다. cluster 구성 및 elasticsearch 설정을 변경하기 위해 설정파일의 수정이 필요하지만 지금 예제에서는 local에서 간단하게 설치할 것 이기 때문에 따로 설정파일의 변경이 필요하지 않다. 2. elasticsearch 실행 설치된 폴더에서 bin 폴더에 실행파일이 있다. os에 따라 실행 파일이 다르다. mac osx기준으로 예제를 설명하겠다. (windows는 .bat 파일을 사용) 실행 파일을 다.. 더보기
elastic stack #1 elasticsearch 소개 #elasticsearch란? https://www.elastic.co/kr/ 공식적으로 A Distributed RESTful Search Engine 라고 설명하고 있다. 설명을 보면 알수 있듯이 분산환경에서 RESTful API를 지원하는 검색 엔진이다. 루씬을 기반으로한 검색엔진을 사용하고, 대용량 데이터를 처리하는데 적합하며 준실시간으로 데이터를 저장하고 검색, 분석할 수 있다. #사용목적 대용량 자료에서의 검색 시간이 중요한 시스템 개발 시 사용 데이터를 저장하고 분석하기 위해 NoSql로서 사용 #특징 분산시스템: 이로인해 높은 확장성과 고가용성을 가질 수 있다. Full Text Search Multi Tenancy: 하나의 서버에 여러 인덱스를 저장, 관리 할 수 있으며, 독립된 하나의 .. 더보기
Kafka #2 클러스터 구축 & quick start Kafka Cluster 를 mac osx 2대의 서버로 구성해 본다. node1: 192.168.0.32 node2: 192.168.0.33 node1에 zookeeper와 broker 1 를 실행하고 node2에 broker 2 를 실행하는 구조의 cluster로 구성해 본다. 1. Download https://kafka.apache.org/downloads 에서 kafka를 다운받는다. 글 작성 시점의 최신 버전인 0.10.1.1 로 작성하였다. 같은 버전의 kafka를 받아서 각 노드에 압축을 풀어 설치한다. 2.zookeeper 실행 node1에서 zookeeper를 실행한다. 기본적으로 kafka는 zookeepr가 필수적으로 필요하다. 따라서 kafka 기본 설치파일에 내장되어 있다. 따라.. 더보기
Kafka #1 소개 #kafka란? https://kafka.apache.org LinkedIn 개발한 분산 메세징 시스템이다. kafka.apche.org 에서는 A dstributed Streaming platform 라고 설명하고 있다. 대용량 실시간 처리에 특화 되어 있다. #사용 목적 스트리밍 어플리케이션의 데이터 파이프 라인으로 사용 대용량으로 발생하는 데이터의 중간 버퍼로서 메세지 큐 시스템을 사용하는 곳에 사용될 수 있음 (예를 들어 ELK 스택에서 Logstahs -> Kafka -> Elasticsearch로 중간 메세지 버퍼 역할) #특징 클러스터로 구성 Zookeeper 로 분산처리 publish-subscribe 모델 #비교대상 Rabbit MQ Active MQ #현황 비교대상인 다른 시스템과 다르.. 더보기
geoip 데이터 지도에 표시하기 elasticsearch의 데이터 타입중 geoip가 있다. 이 데이터는 kibana에서 지도에서 표시가 가능하다. apache-access로그의 client IP를 통해 지도에 데이터를 표시하는 예제를 만들어 보자 121.160.132.126 - - [30/Jan/2017:14:24:02 +0530] "GET /index HTTP/1.1" 200 200 common 패턴의 apache access 로그이다. 여기에있는 client IP를 통해 geo_point 데이터를 추출해 Kibana를 통해 지도에 표시해보자 apache access 로그 설정은 아래 글을 참조하면 된다. http://gyrfalcon.tistory.com/entry/Apache-Tomcat-access-log-%EC%84%A4%E.. 더보기
Logstash(Shipper) 를 사용해 Kafka 메세지를 elasticsearch로 저장 1. download Logstash를 다운받아 압축을 푼다. https://www.elastic.co/kr/downloads/logstash 현재 최신 버전인 logstash-5.1.2 버전을 다운받는다. 보통 elasticsearch도 같은 버전으로 설치를 한다. 2. configuration logstash를 실행할때 지정한 config 파일에 따라 하나의 프로세스로 동작을 한다. 우리가 할껀 input을 kafka로 받아서 output을 elasticsearch로 보내는 것이 대한 config파일을 작성한다. logstash-metric.conf input { kafka { bootstrap_servers => "192.168.0.16:9092,192.168.0.18:9092" topics => .. 더보기
Flink 시작하기 #3 Word Count Sample (Scala) Flink를 사용해 가장 기본 예제가 되는 Word Count 를 만들어보자. Scala, SBT를 사용한 예제이다. 우선 Dependency 다음과 같다. libraryDependencies += "org.apache.flink" % "flink-streaming-scala_2.11" % "1.1.3" 그리고 코드를 작성 해 보자 import org.apache.flink.streaming.api.scala._ import org.apache.flink.streaming.api.windowing.time.Time object WordCount { def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutio.. 더보기