🐿️
Kinesis Data Analyticsチュートリアルをローカルで動かす
Kinesis Data Analyticsチュートリアルとは
AWSのmanaged Apache Flink環境、Kinesis Data Analytics(KDA)のチュートリアルです。
なんでローカルで動かしたいの?
動作確認とかの時便利。
準備
Flinkのドキュメントに記載の通り、
- Flinkパッケージのダウンロード・解凍
- start-clusterの実行
を行います(Session Mode)。なお、Docker・Kubernetesの上で動かすこともできます。
Getting Started
Kinesis Data Streamとデータの読み書きを行うGetting Startedの場合、特にコードを変更することなく、
コンパイル
mvn package -Dflink.version=1.11.1
後、jarをサブミット
~/Downloads/flink-1.11.3/bin/flink run ../GettingStarted/target/aws-kinesis-analytics-java-apps-1.0.jar
すれば実行できました。
Beam
Beamのチュートリアルの場合はコードの変更が必要です。
これは、Kinesis Data Streamの設定取得のために、KDA特有の
argsFromKinesisApplicationProperties
メソッドを使っている(↓)ためです。
String[] kinesisArgs = BasicBeamStreamingJobOptionsParser.argsFromKinesisApplicationProperties(args, BEAM_APPLICATION_PROPERTIES);
KDAのRuntime Propertiesから設定を取得するメソッドなので、他の方法(例えば下のように文字列をコードに埋め込み)すれば、ローカルのFlinkでも実行することができます。
(KDAでないFlinkに、Runtime Properties相当の物があるかは不明…)
// KDA依存の箇所をコメントアウト
// String[] kinesisArgs = BasicBeamStreamingJobOptionsParser.argsFromKinesisApplicationProperties(args, BEAM_APPLICATION_PROPERTIES);
String[] kinesisArgs = {"--inputStreamName=ExampleInputStream", "--outputStreamName=ExampleOutputStream", "--awsRegion=us-west-2"};
Discussion