Kinesis - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Kinesis

I cluster Amazon EMR possono leggere ed elaborare direttamente gli stream Amazon Kinesis, utilizzando strumenti familiari nell'ecosistema Hadoop come Hive, Pig, l'API Hadoop Streaming e Cascading. MapReduce È anche possibile unire i dati in tempo reale provenienti da Amazon Kinesis con dati esistenti su Amazon S3, Amazon DynamoDB e HDFS in un cluster in esecuzione. I dati possono essere caricati direttamente da Amazon EMR su Amazon S3 o DynamoDB per le attività di post-elaborazione. Per ulteriori informazioni sulle caratteristiche salienti del servizio Amazon Kinesis e sui prezzi, consulta la pagina di Amazon Kinesis.

Cosa posso fare con l'integrazione di Amazon EMR e Amazon Kinesis?

L'integrazione tra Amazon EMR e Amazon Kinesis semplifica notevolmente alcuni scenari, quali:

  • Analisi dei log di streaming: puoi analizzare i log Web di streaming per generare ogni pochi minuti un elenco dei 10 errori più diffusi in base alla regione, al browser e al dominio di accesso.

  • Coinvolgimento dei clienti: puoi scrivere query che uniscano i dati clickstream da Amazon Kinesis con le informazioni sulle campagne pubblicitarie archiviate in una tabella DynamoDB al fine di identificare le categorie di annunci più efficaci tra quelli visualizzati su specifici siti Web.

  • Query interattive ad-hoc: puoi caricare periodicamente dati dai flussi Amazon Kinesis in HDFS e renderli disponibili come tabella locale Impala per query rapide, interattive e analitiche.

Analisi con checkpoint dei flussi Amazon Kinesis

Gli utenti possono eseguire analisi periodiche in batch dei flussi Amazon Kinesis nelle cosiddette iterazioni. Poiché i registri dei dati di flusso Amazon Kinesis vengono recuperati utilizzando un numero di sequenza, i limiti dell'iterazione sono definiti da numeri di sequenza iniziali e finali che Amazon EMR archivia in una tabella DynamoDB. Ad esempio, al termine di iteration0, il numero in sequenza finale viene archiviato in DynamoDB in modo che, all'inizio del processo iteration1, sia possibile recuperare i dati successivi dal flusso. Questa mappatura delle iterazioni nei dati di flusso si definisce checkpoint. Per ulteriori informazioni, consulta Kinesis Connector.

Se per un'iterazione sono stati definiti checkpoint e il processo non ha potuto elaborare un'iterazione, Amazon EMR tenta di rielaborare il record in quella iterazione.

I checkpoint consentono di:

  • Avviare l'elaborazione dei dati dopo un numero di sequenza elaborato da una precedente query eseguita sullo stesso flusso e nome logico

  • Rielaborazione dello stesso batch di dati Kinesis elaborato da una precedente query

Per abilitare i checkpoint, imposta il parametro kinesis.checkpoint.enabled su true e configura i seguenti parametri:

Impostazione di configurazione Descrizione
kinesis.checkpoint.metastore.table.name Nome della tabella DynamoDB in cui saranno archiviate le informazioni dei checkpoint
kinesis.checkpoint.metastore.hash.key.name Nome chiave hash per la tabella DynamoDB
kinesis.checkpoint.metastore.hash.range.name Nome chiave range per la tabella DynamoDB
kinesis.checkpoint.logical.name Un nome logico per l'elaborazione corrente
kinesis.checkpoint.iteration.no Numero di iterazioni per elaborazione associata al nome logico
kinesis.rerun.iteration.without.wait Valore booleano che indica se un'iterazione non riuscita può essere eseguita nuovamente senza timeout; l'impostazione predefinita è false

Suggerimenti relativi a Provisioned IOPS per le tabelle Amazon DynamoDB

Il connettore Amazon EMR per Amazon Kinesis utilizza il database DynamoDB come database di supporto per il checkpoint dei metadati. Devi creare una tabella in DynamoDB prima di consumare i dati in un flusso Amazon Kinesis con un cluster Amazon EMR in intervalli sui cui è stato eseguito il checkpoint. La tabella deve trovarsi nella stessa regione del cluster Amazon EMR. Di seguito sono riportate le raccomandazioni generali per il numero di IOPS da assegnare alle tabelle DynamoDB, con j che sarà il numero massimo di processi Hadoop (con diverse combinazioni nome logico+numero di iterazione) che possono essere eseguiti simultaneamente e s il numero massimo di shard elaborati da qualsiasi processo:

Per Read Capacity Units (Unità di capacità di lettura): j*s/5

Per Write Capacity Units (Unità di capacità di scrittura): j*s

Considerazioni sulle prestazioni

La velocità effettiva degli shard Amazon Kinesis è direttamente proporzionale alle dimensioni dell'istanza dei nodi nei cluster Amazon EMR e alle dimensioni dei record nel flusso. Consigliamo di utilizzare l'istanza m5.xlarge o istanze più grandi sui nodi master e principali.

Pianificazione dell'analisi Amazon Kinesis con Amazon EMR

Quando analizzi i dati su un flusso Amazon Kinesis attivo, dati i limiti imposti dal timeout e da una durata massima per ogni iterazione, è importante eseguire l'analisi di frequente per raccogliere dettagli periodici dal flusso. Esistono diversi modi per eseguire tali script e query a intervalli regolari; consigliamo l'uso di AWS Data Pipeline per attività ricorrenti come queste. Per ulteriori AWS Data Pipeline HiveActivityinformazioni AWS Data Pipeline , consulta AWS Data Pipeline PigActivitye consulta la Developer Guide.