Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Kinesis
Les clusters Amazon EMR peuvent lire et traiter directement les flux Amazon Kinesis à l'aide d'outils courants de l'écosystème Hadoop tels que Hive, Pig MapReduce, l'API de streaming Hadoop et Cascading. Vous pouvez également joindre les données en temps réel d'Amazon Kinesis aux données existantes sur Amazon S3, Amazon DynamoDB et HDFS dans un cluster en cours d'exécution. Vous pouvez charger directement les données d'Amazon EMR sur Amazon S3 ou DynamoDB pour les activités de post-traitement. Pour plus d’informations sur les caractéristiques principales du service Amazon Kinesis et ses tarifs, voir la page Amazon Kinesis
Que puis-je faire avec l'intégration d'Amazon EMR et Amazon Kinesis ?
L'intégration entre Amazon EMR et Amazon Kinesis facilite considérablement certains scénarios, par exemple :
-
Analyse de journaux de streaming – Vous pouvez analyser les journaux web de vos flux de diffusion continus afin de générer la liste des 10 principaux types d'erreurs par région, par navigateur et par domaine d'accès à intervalles de quelques minutes.
-
Engagement client – Vous pouvez écrire des requêtes associant des données de parcours provenant d'Amazon Kinesis à des informations sur une campagne publicitaire stockées dans une table DynamoDB, dans le but d'identifier les catégories de publicité les plus efficaces parmi celles affichées sur des sites web donnés.
-
Requêtes interactives ad-hoc – Vous pouvez charger périodiquement des données provenant de flux Amazon Kinesis dans HDFS et les mettre à disposition sous forme d'une table Impala locale permettant des requêtes analytiques, rapides et interactives.
Analyse de points de contrôle des flux Amazon Kinesis
Les utilisateurs peuvent exécuter des analyses régulières par lots de flux Amazon Kinesis dans ce que l'on appelle des itérations. Étant donné que les enregistrements de données de flux Amazon Kinesis sont récupérés à l'aide d'un numéro de séquence, des limites d'itérations sont définies par des numéros de début et de fin de séquences qu'Amazon EMR stocke dans une table DynamoDB. Par exemple, quand iteration0
se termine, elle stocke le numéro de fin de séquence dans DynamoDB afin que lorsque la tâche iteration1
commence, elle puisse extraire les données suivantes du flux. Ce mappage d'itérations de données de flux s'appelle un point de contrôle. Pour plus d'informations, consultez Connecteur Kinesis
Si une itération a été vérifiée et que la tâche a échoué lors du traitement d'une itération, Amazon EMR tente de retraiter les enregistrements de cette itération.
Les points de contrôle sont une fonctionnalité qui vous permet de :
-
Commencer le traitement de données après un numéro de séquence traité par une requête précédente qui s'est exécutée sur le même flux de données et nom logique
-
Retraiter le même lot de données à partir de Kinesis qui a été traité par une requête précédente
Pour activer les points de contrôle, définissez le paramètre kinesis.checkpoint.enabled
sur true
dans vos scripts. En outre, configurez les paramètres suivants :
Paramètre de configuration | Description |
---|---|
kinesis.checkpoint.metastore.table.name | Nom de la table DynamoDB où seront stockées les informations de point de contrôle |
kinesis.checkpoint.metastore.hash.key.name | Nom de la clé de hachage pour la table DynamoDB |
kinesis.checkpoint.metastore.hash.range.name | Nom de la clé de plage pour la table DynamoDB |
kinesis.checkpoint.logical.name | Un nom logique pour le traitement actuel |
kinesis.checkpoint.iteration.no | Numéro de l'itération pour le traitement associé au nom logique |
kinesis.rerun.iteration.without.wait | Valeur booléenne qui indique si une itération ayant échoué peut être exécutée à nouveau sans attente l'expiration ; la valeur par défaut est false |
Recommandations d'IOPS provisionnés pour les tables Amazon DynamoDB
Le connecteur Amazon EMR pour Amazon Kinesis utilise la base de données DynamoDB comme support pour les métadonnées de pointage. Vous devez créer une table dans DynamoDB avant de consommer des données dans un flux Amazon Kinesis avec un cluster Amazon EMR à intervalles contrôlés. La table doit se trouver dans la même région que votre cluster Amazon EMR. Voici des recommandations générales pour le nombre d'IOPS que vous devez mettre en service pour vos tables DynamoDB. j
est le nombre maximum de tâches Hadoop (avec une combinaison de nombre d'itérations+nom logique différente) pouvant s'exécuter simultanément et s
est le nombre maximum de partitions que toute tâche traitera :
Pour Read Capacity Units (Unités de capacité en lecture) : j
*s
/5
Pour Write Capacity Units (Unités de capacité en écriture) : j
*s
Considérations sur les performances
Le débit de la partition Amazon Kinesis est directement proportionnel à la taille de l'instance des nœuds dans les clusters Amazon EMR et à la taille de l'enregistrement dans le flux. Nous vous recommandons d'utiliser des instances m5.xlarge ou plus importantes sur les nœuds maîtres et principaux.
Planifiez une analyse Amazon Kinesis avec Amazon EMR
Lorsque vous analysez des données sur un flux Amazon Kinesis actif, limité par des délais d'attente et une durée maximale pour l'itération, il est important que vous exécutiez l'analyse fréquemment pour collecter régulièrement des détails à partir du flux. Il existe plusieurs façons d'exécuter ces scripts et requêtes à intervalles réguliers ; nous vous conseillons d'utiliser AWS Data Pipeline pour les tâches répétitives de ce type. Pour plus d'informations, consultez AWS Data Pipeline PigActivityet consultez AWS Data Pipeline HiveActivityle Guide du AWS Data Pipeline développeur.