다음과 같은 명령어를 입력하여 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
우선 나는 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
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
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에 업로드 하도록 해준다.
https://console.aws.amazon.com/kinesis 콘솔에 접속하여 analytics를 생성해주도록 한다.
사진과 같이 생성을 진행하고 analytics를 확인하면 된다.