Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Kinesis
Los clústeres de Amazon EMR pueden leer y procesar las transmisiones de Amazon Kinesis directamente mediante herramientas conocidas del ecosistema de Hadoop, como Hive, Pig MapReduce, la API de streaming de Hadoop y Cascading. También puede unir los datos en tiempo real de Amazon Kinesis con los datos existentes en Amazon S3, Amazon DynamoDB y HDFS en un clúster en ejecución. Puede cargar datos directamente de Amazon EMR en Amazon S3 o en DynamoDB para actividades posteriores al procesamiento. Para obtener información sobre las características y los precios del servicio Amazon Kinesis, consulte la página de Amazon Kinesis
¿Qué puede hacer con la integración de Amazon EMR y Amazon Kinesis?
La integración entre Amazon EMR y Amazon Kinesis facilita en gran medida ciertas actividades, como, por ejemplo:
-
Análisis de registros de streaming: puede analizar registros web de streaming para generar una lista de los 10 tipos de error principales cada pocos minutos por región, navegador y dominio de acceso.
-
Interacción con los clientes: puede escribir consultas que unan datos de secuencias de clic desde Amazon Kinesis con información de campañas publicitarias almacenada en una tabla de DynamoDB para identificar las categorías de anuncios más eficaces que se muestran en sitios web particulares.
-
Consultas interactivas ad-hoc: puede cargar datos periódicamente desde flujos de Amazon Kinesis en HDFS y hacer que estén disponibles como tabla de Impala local para consultas analíticas interactivas rápidas.
Análisis con puntos de control de flujos de Amazon Kinesis
Los usuarios pueden ejecutar análisis por lotes periódicos de flujos de Amazon Kinesis en lo que se denominan iteraciones. Dado que los registros de datos de los flujos de Amazon Kinesis se recuperan utilizando un número de secuencia, los límites de las iteraciones se definen por números de secuencia iniciales y finales que Amazon EMR almacena en una tabla de DynamoDB. Por ejemplo, cuando finaliza iteration0
, almacena el número de secuencia final en DynamoDB para que cuando comience el trabajo iteration1
, este pueda recuperar los datos siguientes del flujo. Este mapeo de iteraciones en los datos de flujo se denomina creación de puntos de comprobación. Para obtener más información, consulte Conector de Kinesis
Si una iteración ha sido objeto de control y el trabajo no ha podido procesar una iteración, Amazon EMR intenta volver a procesar los registros de esa iteración.
La creación de puntos de comprobación es una característica que le permite:
-
Comenzar el procesamiento de datos después de un número de secuencia procesado por una consulta anterior que se ejecutó en el mismo flujo y nombre lógico
-
Volver a procesar el mismo lote de datos desde Kinesis que se procesó en una consulta anterior
Para habilitar la creación de puntos de comprobación, defina el parámetro kinesis.checkpoint.enabled
en true
en sus scripts. Además, configure los siguientes parámetros:
Opción de configuración | Descripción |
---|---|
kinesis.checkpoint.metastore.table.name | Nombre de la tabla de DynamoDB donde se almacenará la información de los puntos de comprobación |
kinesis.checkpoint.metastore.hash.key.name | Nombre de clave hash para la tabla de DynamoDB |
kinesis.checkpoint.metastore.hash.range.name | Nombre de clave de rango para la tabla de DynamoDB |
kinesis.checkpoint.logical.name | Un nombre lógico para el procesamiento actual |
kinesis.checkpoint.iteration.no | Número de iteración para procesamiento asociado con el nombre lógico |
kinesis.rerun.iteration.without.wait | Valor booleano que indica si una iteración que ha devuelto un error se puede volver a ejecutar sin necesidad de esperar un tiempo de espera; el valor predeterminado es false |
Recomendaciones de IOPS aprovisionadas para tablas de Amazon DynamoDB
El conector de Amazon EMR para Amazon Kinesis utiliza la base de datos de DynamoDB como respaldo para los metadatos de puntos de comprobación. Debe crear una tabla en DynamoDB antes de consumir los datos de un flujo de Amazon Kinesis con un clúster de Amazon EMR en intervalos de puntos de comprobación. La tabla debe estar en la misma región que su clúster de Amazon EMR. A continuación, se ofrecen recomendaciones generales para el número de IOPS que debe aprovisionar para sus tablas de DynamoDB; j
es el número máximo de trabajos de Hadoop (con diferente combinación de nombre lógico y número de iteración) que pueden ejecutarse de forma simultánea y s
es el número máximo de particiones que procesará cualquier trabajo:
Para Read Capacity Units (Unidades de capacidad de lectura): j
*s
/5
Para Write Capacity Units (Unidades de capacidad de escritura): j
*s
Consideraciones sobre el rendimiento
El rendimiento de particiones de Amazon Kinesis es directamente proporcional al tamaño de instancia de los nodos en los clústeres Amazon EMR y al tamaño de los registros en el flujo. Le recomendamos que use instancias m5.xlarge o superiores en los nodos maestros y principales.
Programación del análisis de Amazon Kinesis con Amazon EMR
Cuando analiza datos de un flujo Amazon Kinesis activo, limitado por los tiempos de espera y una duración máxima de las interacciones, es importante que ejecute el análisis con frecuencia para recopilar detalles del flujo con periodicidad. Hay varias formas de ejecutar estos scripts y consultas en intervalos periódicos. Para tareas recurrentes como estas, recomendamos usar AWS Data Pipeline . Para obtener más información, consulte y en la Guía para desarrolladores. AWS Data Pipeline PigActivityAWS Data Pipeline HiveActivityAWS Data Pipeline