我想要使用 Amazon Kinesis Producer Library (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 设置为默认 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
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 使用聚合而减少。
相关信息
使用 KPL 写入您的 Kinesis 数据流