Je souhaite utiliser la bibliothèque Amazon Kinesis Producer (KPL) pour écrire et placer des enregistrements de données dans un flux de données Amazon Kinesis.
Résolution
Prérequis :
- Une instance Linux Amazon Elastic Compute Cloud (Amazon EC2) en cours d’exécution
- Un rôle AWS Identity and Access Management (IAM) est associé à votre instance
- La stratégie KinesisFullAccess est associée au rôle IAM de l’instance
Pour utiliser la bibliothèque KPL afin de placer des enregistrements dans un flux de données Kinesis, procédez comme suit :
-
Connexion à votre instance Linux.
-
Installez la dernière version du package de développement OpenJDK 8 :
sudo yum install java-1.8.0-openjdk-devel
-
Vérifiez que Java est installé :
java -version
Vous obtiendrez une sortie de ce type :
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)
-
Exécutez les commandes suivantes pour définir Java 1.8 comme fournisseur par défaut java et javac :
sudo /usr/sbin/alternatives --config java sudo /usr/sbin/alternatives --config javac
-
Ajoutez un référentiel contenant un package 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
-
Définissez le numéro de version des packages Maven :
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
-
Utilisez yum pour installer Maven :
sudo yum install -y apache-maven
Pour vérifier que Maven est bien installé, exécutez la commande suivante :
mvn -version
Vous obtiendrez une sortie de ce type :
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"
-
Installez git, puis téléchargez la bibliothèque KPL depuis le site Web de GitHub :
sudo yum install gitgit clone https://github.com/awslabs/amazon-kinesis-producer
-
Ouvrez le répertoire amazon-kinesis-producer/java/amazon-kinesis-producer-sample/, puis dressez la liste des fichiers :
`cd amazon-kinesis-producer/java/amazon-kinesis-producer-sample/ls`
`default_config.properties pom.xml README.md src target`
-
Exécutez une commande similaire à la suivante pour créer un flux de données Kinesis :
aws kinesis create-stream --stream-name kinesis-kpl-demo --shard-count 2
- Exécutez list-streams pour confirmer la création du flux :
aws kinesis list-streams
- Ouvrez le fichier SampleProducer.java dans le référentiel GitHub, puis modifiez les champs suivants :
Pour la chaîne finale statique publique STREAM_NAME_DEFAULT, saisissez le nom du flux de données Kinesis que vous avez créé précédemment.
Pour la chaîne finale statique publique REGION_DEFAULT, saisissez la région AWS que vous utilisez.
Exemple :
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";
- Pour permettre à Maven de télécharger toutes les dépendances du répertoire, exécutez la commande suivante dans le répertoire amazon-kinesis-producer-sample :
mvn clean package
- Pour exécuter le producteur et envoyer des données dans le flux de données Kinesis, exécutez la commande suivante dans le répertoire amazon-kinesis-producer-sample :
mvn exec:java -Dexec.mainClass="com.amazonaws.services.kinesis.producer.sample.SampleProducer"
- Pour vérifier le nombre d’enregistrements envoyés au flux, consultez le graphique Données entrantes (nombre) dans l’onglet Surveillance de la console Kinesis.
Remarque : le nombre d’enregistrements peut être inférieur à ceux envoyés au flux de données. Ce nombre d’enregistrements inférieur peut être dû au fait que la bibliothèque KPL utilise l’agrégation.
Informations connexes
Écrire dans votre flux de données Kinesis à l’aide de la bibliothèque KPL
Repartage, mise à l’échelle et traitement parallèle