AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

KPL を使って Kinesis データストリームにデータレコードを配置するにはどうすればよいですか?

所要時間2分
0

Amazon Kinesis Producer Library (KPL) を使って、データレコードの書き込みと Amazon Kinesis データストリームへの配置を行いたいと考えています。

解決策

前提条件:

  • 実行中の Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスがある
  • インスタンスに AWS Identity and Access Management (IAM) ロールがアタッチされている
  • KinesisFullAccess ポリシーが、インスタンスの IAM ロールにアタッチされている

KPL を使用して Kinesis データストリームにレコードを配置する手順は次のとおりです。

  1. Linux インスタンスに接続します

  2. OpenJDK 8 デベロッパーパッケージの最新バージョンをインストールします。

    sudo yum install java-1.8.0-openjdk-devel
  3. Java がインストールされていることを確認します。

    java -version

    次のような出力が表示されます。

    java version "1.7.0_181"OpenJDK Runtime Environment (amzn-2.6.14.8.80.amzn1-x86_64 u181-b00)
    OpenJDK 64-Bit Server VM (build 24.181-b00, mixed mode)
  4. 次のコマンドを実行して、Java 1.8 をデフォルトの Java および javac プロバイダーとして設定します。

    sudo /usr/sbin/alternatives --config java sudo /usr/sbin/alternatives --config javac
  5. Apache Maven パッケージが入ったリポジトリを追加します。

    sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
  6. Maven パッケージのバージョン番号を設定します。

    sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
  7. yum を使用して Maven をインストールします。

    sudo yum install -y apache-maven

    Maven が正しくインストールされていることを確認するには、以下のコマンドを実行します。

    mvn -version

    次のような出力が表示されます。

    Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)Maven home: /usr/share/apache-maven
    Java version: 1.7.0_181, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181.x86_64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "4.14.33-51.37.amzn1.x86_64", arch: "amd64", family: "unix"
  8. git をインストールし、GitHub のウェブサイトから KPL をダウンロードします

    sudo yum install gitgit clone https://github.com/awslabs/amazon-kinesis-producer
  9. amazon-kinesis-producer/java/amazon-kinesis-producer-sample/ ディレクトリを開き、ファイルを一覧表示します。

    `cd amazon-kinesis-producer/java/amazon-kinesis-producer-sample/ls`
    `default_config.properties  pom.xml  README.md  src  target`
  10. 次のようなコマンドを実行して、Kinesis データストリームを作成します。

aws kinesis create-stream --stream-name kinesis-kpl-demo --shard-count 2
  1. list-stream を実行して、ストリームが作成されていることを確認します。
aws kinesis list-streams
  1. GitHub リポジトリの SampleProducer.java ファイルを開き、次のフィールドを変更します。
    public static final String STREAM_NAME_DEFAULT には、事前に作成した Kinesis データストリームの名前を入力します。
    public static final String REGION_DEFAULT には、使用している AWS リージョンを入力します。
    例:
cd src/com/amazonaws/services/kinesis/producer/samplevi SampleProducerConfig.java
public static final String STREAM_NAME_DEFAULT = "kinesis-kpl-demo";
public static final String REGION_DEFAULT = "us-east-1";
  1. amazon-kinesis-producer-sample ディレクトリで次のコマンドを実行し、ディレクトリの依存関係全体のダウンロードを、Maven に許可します。
mvn clean package
  1. amazon-kinesis-producer-sample ディレクトリで次のコマンドを実行し、プロデューサーを起動し、Kinesis データストリームにデータを送信します。
mvn exec:java -Dexec.mainClass="com.amazonaws.services.kinesis.producer.sample.SampleProducer"
  1. Kinesis コンソールMonitoring タブに表示される Incoming Data(Count) グラフで、ストリームに送信されたレコードの数を確認します。

**注:**表示されるレコード数は、データストリームに送信された実際のレコード数より少なくなる場合があります。このようにレコード数が少なくなるのは、KPL が集計を使用するからです。

関連情報

Writing to your Kinesis Data Stream using the KPL

リシャーディング、スケーリング、並列処理

AWS公式
AWS公式更新しました 8ヶ月前
コメントはありません

関連するコンテンツ