본문 바로가기

Big Data

Flink 시작하기 #4 Flink Cluster(Standalone) 설치 Flink Cluster(Standalone) 설치 1. Requirements Java 1.7 or higher SSH 각 노드마다 java 1.7 이상을 미리 설치해 둔다. 예제에서는 Mac OSX 두개로 Flink Cluster(Standalone)을 세팅 할 것이다. 2. SSH 설정 passwordless SSH 설정: https://opentutorials.org/module/432/3742 Flink는 다른노드들을 SSH로 컨트롤한다. 따라서 아래와 같이 세팅하라고 나온다. having passwordless SSH and the same directory structure on all your cluster nodes 즉 비밀번호 없이 SSH로 접속할 수 있도록 세팅하고, 모든 노드들의 f.. 더보기
[Kafka] Kafka로 Log를 보내는 방법들 ELK 스택을 사용해 Log 관리 시스템을 만들때 Kafka가 중간에 메세지 큐로서 주로 사용된다. 여러 app들이 kafka로 log 메세지를 보내는 방법에는 여러가지가 있다. 참조: https://www.elastic.co/kr/blog/just-enough-kafka-for-the-elastic-stack-part1 1. logstash(shipper) 위 그림처럼 Logstash를 사용해서 Kafka로 app에서 생성한 로그파일을 메세지로 전달할 수 있다. https://www.elastic.co/kr/downloads/logstash 에서 logstash를 다운받아 압축을 푼다. config파일을 만들어서 logstash를 실행할 수 있다. input은 파일이고 output은 kafka가 되도록.. 더보기
kafka #3 Kafka-Manager 설치 Kafka-Manager 설치 Yahoo에서 만든 kafka-Manager로 Kafka를 쉽게 컨트롤이 가능하다.https://github.com/yahoo/kafka-manager 에서 쉽게 따라할 수 있다. 1. Download sourcehttps://github.com/yahoo/kafka-manager 에서 소스를 다운로드 한다. 그리고 압축을 풀어준다. 2. Buildsbt로 프로젝트를 build 한다. ./sbt clean dist./sbt run 단, java 8이 설치가 되어 있어야 하며, 환경변수에도 등록이 되어 있어야 한다. $ PATH=/usr/local/oracle-java-8/bin:$PATH \ JAVA_HOME=/usr/local/oracle-java-8 \ /path/to/.. 더보기
[Spark] Streaming Word Count 샘플 (Scala) Streaming Word Count 샘플 Spark Streaming 에서 Word Count 샘플 코드를 만들어보자 기존에 배치 프로세싱에서의 Word Counting 참고: http://gyrfalcon.tistory.com/110 Spark Streaming Dependency를 추가한다. Spark core와 동일버젼으로 추가한다. org.apache.spark spark-streaming_2.11 2.0.1 인풋 소스로 여러 다양한 방법이 있겠지만 가장 기본이 되는 Socket text 방식으로 text를 입력받는 방식을 사용한다. StreamingContext 으로 Stream Spark Context를 생성한다. 이때 시간 interval을 입력해야하는데 Spark Streaming은 일정.. 더보기
[Spark] Spark Standalone 설치 Spark Standalone 설치 1. Spark Downloadhttps://spark.apache.org/downloads.html 에서 2.0.1을 다운받는다. PreBuilt for Hadoop으로 선택하고 받아 압출을 풀면 된다. 2. Master 실행다운받은 zip파일을 압출을 풀고 sbin/start-master.sh 를 실행하면 master가 실행된다. 데몬으로 백그라운드로 돌아가기 때문에 터미널을 그대로 사용하면 된다. Spark는 기본 WEB UI를 제공하기 때문에 정상적으로 실행됬는디 localhost:8080 에서 확인하자. 현재 Worker가 등록안되어 있기 때문에 아래 와같이 나타난다. 3. Worker 실행 실행한 Master에 Worker를 등록한다. 현재 테스트로 동일노드.. 더보기
[Spark] Word Count 샘플 (Scala) [Spark] Word Count 샘플 (Scala) 데이터 분석의 Hello Word라고 할 수 있는 Word Count를 Spark를 사용해서 만들어 보자.Scala를 사용해 보겠다. maven에 spark-core를 추가한다. (Scala version에 따라 2.10 or 2.11 중 하나를 선택하면된다) org.apache.spark spark-core_2.11 2.0.1 정말 코드가 간단하다. SparkContext를 만들어서 파일에서 line을 읽고 RDD로 Word Count를 금방 만들어 낸다. 코드다. 정말 쉽다.flatMap으로 line을 split한다.map으로 word, 1로 String, Integer 형태로 바꾸고reduceByKey로 couting한다.foreach로 cons.. 더보기
Apache Storm #3 (Stream windows API: Trident) Apache StormStream windows API (Trident) Trident의 Stream API중 window()가 있다. 이는 Streaming의 특징인 windowing 을 지원하는 메소드이다.간단히 설명해 windowing은 batch 처리를 할때 Tuple의 양을 일정 기준에 따라 정해서 처리하는 것이다.Storm 공식 문서에는 아래와 같이 설명하고 있다. Trident streams can process tuples in batches which are of the same window and emit aggregated result to the next operation. There are two kinds of windowing supported which are based on.. 더보기
Apache Storm #2 (WordCount 샘플 Topology 만들기) Apache StormWordCount 샘플 Topology 만들기 1. 프로젝트 생성IDE로 IntelliJ를 사용하여 Java Maven 프로젝트를 생성한다. Java 버젼은 1.8로 선택했다. 프로젝트가 만들어지면 pom.xml에서 storm-core 디펜던시를 추가한다. org.apache.storm storm-core 1.0.2 이렇게 하면 Storm 코드를 local에서 테스트하기 위한 모든 준비가 끝이다. 2. WordCounting 샘플 Word Counting은 가장 많이 사용되는 샘플이다. Storm으로 해당 샘플을 작성해본다. 2.1 Spout Spout는 데이터를 읽어오는 역할을 한다. 스톰은 Tuple 형식으로 데이터를 다룬다.아래 작성한 SentenceSpout는 5줄의 미리 작.. 더보기