kinesis analytics 구성

영진·2023년 1월 13일
0

AWS

목록 보기
7/17
post-thumbnail

Kinesis analytics를 구성해 보았다.

구성하였던 단계는 총 5가지 단계로 이루어져 있다.


아래와 같은 방법으로 단계를 설명한다.

1. Java install

2. mvn install

3. S3 구성 및 스트림 생성

4. Sink file 설정

5. analytics 생성하기


1. Java install

다음과 같은 명령어를 입력하여 java를 설치해주도록 한다.

아래 사이트를 참고하여 설치를 진행하였다.

다음 명령어로 자바를 설치한다.

sudo yum install java-11

이제 자바를 확인하는 명령어를 사용해 본다.

sudo update-alternatives --config java





이제 다음과 같이 자바를 확인하도록 하였다면, bash_profile의 내용을 변경하여 JAVA_HOME을 지정해주도록 한다.

vim .bash_profile

# 안에 기입해야되는 내용
JAVA_HOME="/usr/lib/jvm/java-11-amazon-corretto.x86_64/bin/java"









다음 명령어로 변경사항을 저장해준다.

source .bash_profile

2. mvn install

우선 나는 wget을 통해 maven을 설치해주도록 하였다.
다음 명령어를 입력하여 maven을 설치한다.
나는 최신버전으로 지정하지 않고 3.8.2 버전으로 설치를 진행했다.

wget https://archive.apache.org/dist/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz

tar 파일 설치를 진행하였다면 다음 명령어를 통해 압축 해제를 진행한다.

tar -zxvf apache-maven-3.8.2-bin.tar.gz

이후 mv 명령어 커맨드를 활용하여 /usr/local 경로에 maven을 저장시킨다.

mv apache-maven-3.8.2 /usr/local/

maven을 저장시켰다면 심볼릭 링크를 등록하도록 한다.

cd /usr/local/
ln -s apache-maven-3.8.2/ maven

이후 자바때 했던 것과 마찬가지로 maven도 환경변수를 추가해준다.

#maven
export MAVEN_HOME=/usr/local/maven

#common
export PATH=$PATH:$MAVEN_HOME/bin

이제 /etc/profile의 내용을 적용시킨다.

source /etc/profile
mvn -v

3. S3 구성 및 스트림 생성

ap-northeast-2 리전으로 s3 bucket를 하나 생성해주도록 한다.

cli로 S3 bucket를 생성하는 명령어는 다음과 같다.

aws s3 mb s3://3-demo

이제 생성된 S3의 폴더를 생성한다.

이제 Kineiss steram을 생성을 진행하도록 할 것이다.

#!/bin/bash
aws kinesis create-stream --stream-name input --shard-count 1 --region ap-northeast-2

이후 stock.py를 작성하고 실행시키도록 한다.

cat << EOF > stock.py 
import datetime
import json
import random
import boto3

STREAM_NAME = "input"


def get_data():
    return {
        'EVENT_TIME': datetime.datetime.now().isoformat(),
        'TICKER': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']),
        'PRICE': round(random.random() * 100, 2)}


def generate(stream_name, kinesis_client):
    while True:
        data = get_data()
        print(data)
        kinesis_client.put_record(
            StreamName=stream_name,
            Data=json.dumps(data),
            PartitionKey="partitionkey")


if __name__ == '__main__':
    generate(STREAM_NAME, boto3.client('kinesis'))
EOF
pip3 install boto3
python3 stock.py

4. Sink file 설정

git clone을 통해 git hub에 업로드된 sink파일을 불러오고, JAVA file 내용들을 수정해준다.

이후 빌드를 실행시켜준다.

#!/bin/bash
sudo yum install git -y
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-java-examples
cd amazon-kinesis-data-analytics-java-examples/S3Sink/
sed -i 's/us-west-2/ap-northeast-2/g' src/main/java/com/amazonaws/services/kinesisanalytics/S3StreamingSinkJob.java
sed -i 's/ExampleInputStream/input/g' src/main/java/com/amazonaws/services/kinesisanalytics/S3StreamingSinkJob.java
sed -i 's|s3a://ka-app-code-<username>/data|s3://3-demo/data|g' src/main/java/com/amazonaws/services/kinesisanalytics/S3StreamingSinkJob.java
mvn package
aws s3 cp target/aws-kinesis-analytics-java-apps-1.0.jar s3://3-demo/data/

이후 생성된 target/aws-kinesis-analytics-java-apps-1.0.jar 파일을 S3에 업로드 하도록 해준다.


5. analytics 생성하기

https://console.aws.amazon.com/kinesis 콘솔에 접속하여 analytics를 생성해주도록 한다.
사진과 같이 생성을 진행하고 analytics를 확인하면 된다.

profile
I'm good at cloud computing.

0개의 댓글