如何使用 KPL 将数据记录放入 Kinesis 数据流中?

上次更新时间:2020 年 4 月 21 日

我想要使用 Amazon Kinesis 创建器库 (KPL) 将数据记录写入和放入 Kinesis 数据流。该如何操作?

简短描述

使用 KPL 将记录放入 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 设置为默认 javajavac 提供程序:

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

8.    确认已正确安装 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"

9.    安装 Git,然后从 Amazon Web Services – 实验室下载 KPL:

sudo yum install git
git clone https://github.com/awslabs/amazon-kinesis-producer

10.    打开 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

11.    运行类似于以下内容的命令,以创建 Kinesis 数据流:

aws kinesis create-stream --stream-name kinesis-kpl-demo --shard-count 2

有关所需分区数量的更多信息,请参阅重新分片、扩展和并行处理

12.    运行 list-streams 以确认流已创建:

aws kinesis list-streams

13.    打开 Amazon Web Services – 实验室 GitHub 存储库上的 SampleProducer.java 文件,然后修改以下字段:
对于公有静态最终字符串 STREAM_NAME_DEFAULT,输入先前创建的 Kinesis 数据流的名称。
对于公有静态最终字符串 REGION_DEFAULT,输入您正在使用的区域。

示例:

cd src/com/amazonaws/services/kinesis/producer/sample
vi SampleProducerConfig.java

public static final String STREAM_NAME_DEFAULT = "kinesis-kpl-demo";
public static final String REGION_DEFAULT = "us-east-1";

14.    在 amazon-kinesis-producer-sample 目录中运行以下命令,以允许 Maven 下载该目录的所有依赖项:

mvn clean package

15.    在 amazon-kinesis-producer-sample 目录中运行以下命令,以执行创建器并将数据发送到 Kinesis 数据流:

mvn exec:java -Dexec.mainClass="com.amazonaws.services.kinesis.producer.sample.SampleProducer"

16.    检查 Kinesis 控制台监控选项卡上的传入数据(计数)图,以验证发送到流的记录数。

注意:记录数可能少于发送到数据流的记录数。记录数量可能由于 KPL 使用聚合而减少。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?