Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

초 간단 Apache Storm 맛보기(코딩)

OpenSource/Apache Storm 2020. 5. 25. 19:17
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

이번 포스팅에서는 maven, springframework, java를 사용한다.

이전 시간에 apache storm 클러스터를 셋팅 해보았다.

그에 맞는 storm버전을 maven pom.xml에 작성해보자.
maven관련 내용은 메이븐레파지토리에서 알수 있다.

https://mvnrepository.com/artifact/org.apache.storm/storm-core/1.0.1

 

그리고 로깅과 스프링프레임워크 관련도 셋팅 해보자.

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

 

    <groupId>storm</groupId>

    <artifactId>game</artifactId>

    <version>1.0-SNAPSHOT</version>

 

    <properties>

        <!-- spring -->

        <spring.version>3.2.13.RELEASE</spring.version>

        <!-- storm -->

        <storm.version>1.0.1</storm.version>

        <httpclient.version>4.5.2</httpclient.version>

 

        <!-- logging -->

        <slf4j.version>1.7.10</slf4j.version>

        <logback.version>1.1.2</logback.version>

    </properties>


    <dependencies>

        <!-- spring -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-context</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-beans</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-web</artifactId>

            <version>${spring.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-jdbc</artifactId>

            <version>${spring.version}</version>

        </dependency>

 

        <!-- storm -->

        <dependency>

            <groupId>org.apache.storm</groupId>

            <artifactId>storm-core</artifactId>

            <version>${storm.version}</version>

            <scope>provided</scope>

        </dependency>

        <dependency>

            <groupId>org.apache.storm</groupId>

            <artifactId>flux-core</artifactId>

            <version>${storm.version}</version>

        </dependency>

 

        <!-- Logging -->

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-api</artifactId>

            <version>${slf4j.version}</version>

        </dependency>

        <dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-core</artifactId>

            <version>${logback.version}</version>

        </dependency>

        <dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-classic</artifactId>

            <version>${logback.version}</version>

        </dependency>

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>jcl-over-slf4j</artifactId>

            <version>${slf4j.version}</version>

        </dependency>

        <dependency>

            <groupId>org.slf4j</groupId>

            <artifactId>log4j-over-slf4j</artifactId>

            <version>${slf4j.version}</version>

        </dependency>

 

    </dependencies>

</project>

코드는 2가지를 해보려고 한다.

코드실행은 로컬이 아닌 서버에서 동작한다.

 

코드를 보기전에 용어부터 알아보자.

  • Topology : Spout와 Bolt 들간의 흐름을 제어하는 부분! main 함수도 있다~

 

 

 

HelloWorld Sample : https://bcho.tistory.com/991?category=563141

WordCount Sample : https://gyrfalcon.tistory.com/entry/Apache-Storm-2?category=674613

'OpenSource > Apache Storm' 카테고리의 다른 글

초 간단 Apache Storm 맛보기(코딩)  (0) 2020.05.25
초 간단 Apache Storm 맛보기(셋팅)  (0) 2020.05.19

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

초 간단 Apache Storm 맛보기(셋팅)

OpenSource/Apache Storm 2020. 5. 19. 15:42
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

Apache Storm을 셋팅하기 위해서 필요한 것은?

1. Open Jdk

2. Zookeeper

3. Apache Storm

4. Python

셋팅결과!

Jdk와 Python은 서버에 맞게 잘 찾아서 셋팅 해준다. :)

이 포스팅에서는 pass~

 

이제! 이 포스팅에서 다룰 주키퍼와 아파치 스톰! 셋팅을 시작해보자~

 

Zookeeper Setting

  1. download : wget http://mirror.apache-kr.org/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
  2. 압축해제 : tar xvfz  apache-zookeeper-3.5.8-bin.tar.gz
  3. 심볼릭 링크 센스 : ln -s  apache-zookeeper-3.5.8-bin zookeeper
  4. ~/zookeeper/conf 설정
    1. zoo_sample.cfg를 zoo.cfg로 복사 -> cp zoo_sample.cfg zoo.cfg
    2. zoo.cfg 열어서 수정! -> vi zoo.cfg
    3. 아래처럼 dataDir, server.1~3 등을 채워넣으면 된다.

단, bif-dev-1등의 호스트명을 사용하려면 각 서버별로 아래와 같이 설정 해야 한다.

sudo vi /etc/hosts 오픈 후 아래와 같이 설정!

해당 아이피      호스트명

10.111.xx.aaa  bif-dev-1

10.111.xx.bbb  bif-dev-2

10.111.xx.ccc   bif-dev-3

 

위와 같이 설정하지 않으려면 ip로 설정하면 되겠쥬?

그리고! 위에서 설정한 dataDir 아래에 아래와 같이 서버별로 myid라는것을 만들자!

echo 1 > ../logs/zookeeper/myid

해당 설정이 없으면 아래와 같은 오류를 맛보게 될 것이다!

$ ./zkServer.sh start

/home/deploy/util/jdk8u252-b09/bin/java

ZooKeeper JMX enabled by default

Using config: /home/deploy/util/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... FAILED TO START

 

설정 후에 다시 주키퍼를 스타트 시키면!

  • bif-dev-1 서버 :  echo 1 > ../logs/zookeeper/myid
  • bif-dev-2 서버 : echo 2 > ../logs/zookeeper/myid
  • bif-dev-3서버 :  echo 3 > ../logs/zookeeper/myid

$ ./zkServer.sh start

/home/deploy/util/jdk8u252-b09/bin/java

ZooKeeper JMX enabled by default

Using config: /home/deploy/util/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

 

ZooKeeper 띄우기 성공!


Apache Storm Setting

  • download : http://storm.apache.org/downloads.html
    • 다운로드 페이지에서 원하는 버전을 가져다가 사용하면 된다.
    • 하지만 이번 포스팅은 현재 업무버전에 맞게 동일한 버전으로 하려고 한다.
      • 버전은 바로 1.0.1 ~!! 두둥탁~ 
      • wget https://archive.apache.org/dist/storm/apache-storm-1.0.1/apache-storm-1.0.1.tar.gz 
  • 압축해제 : tar xvfz apache-storm-1.0.1.tar.gz 로 압축을 해제한 뒤 
  • 센스있게 심볼릭 링크를 걸어준다.
    • ln -s apache-storm-1.0.1.tar.gz storm

아래와 같이 된다.

 

storm.zookeeper.servers:

     - "bif-game-dev-1"

     - "bif-game-dev-2"

     - "bif-game-dev-3"

storm.local.dir: "/home/deploy/logs/storm/data"

nimbus.seeds: ["bif-game-dev-1"]

ui.host: 0.0.0.0

ui.port: 8081

 

설정 후!

동작을 시켜보자~

  1. nimbus
    1. 한 서버에만 올려보자.
      1. bin]$ ./storm nimbus
  2. supervisor
    1. 서버 3대 각각 돌려보자!
      1. bin]$ ./storm supervisor
  3. ui 
    1. 서버 한대에서 돌려보자.
      1. bin]$ ./storm ui 

ip or host:포트 를 통해 접근할 수 있다.

ex) aa.bb.xx.21:8081

 

그리고 위에서 nimbus, supervisor는 뭘까?

nimbus : 마스터 노드에서 실행하는 데몬!

supervisor : 워커 노드에서 실행하는 데몬!

ui : 스톰 ui를 기동! 

 

이제 간단한 코딩을 해보자~

다음편에 계속!..

 

좋은 사이트 :

http://www.corejavaguru.com/bigdata/zookeeper/getting-started-with-zookeeper

https://jdm.kr/blog/218

'OpenSource > Apache Storm' 카테고리의 다른 글

초 간단 Apache Storm 맛보기(코딩)  (0) 2020.05.25
초 간단 Apache Storm 맛보기(셋팅)  (0) 2020.05.19

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::