

# Procesamiento de los datos de DynamoDB con Apache Hive en Amazon EMR
<a name="EMRforDynamoDB"></a>

Amazon DynamoDB se integra con Apache Hive, una aplicación de almacén de datos que se ejecuta en Amazon EMR. Hive puede leer y escribir datos en las tablas de DynamoDB, lo que le permite:
+ Consultar datos de DynamoDB en directo utilizando un lenguaje semejante a SQL (HiveQL).
+ Copiar datos de una tabla de DynamoDB en un bucket de Amazon S3 y viceversa.
+ Copiar datos de una tabla de DynamoDB en Hadoop Distributed File System (HDFS) y viceversa.
+ Realizar operaciones de unión con las tablas de DynamoDB.

**Topics**
+ [Descripción general](#EMRforDynamoDB.Overview)
+ [Tutorial: Uso de Amazon DynamoDB y Apache Hive](EMRforDynamoDB.Tutorial.md)
+ [Creación de una tabla externa en Hive](EMRforDynamoDB.ExternalTableForDDB.md)
+ [Procesamiento de instrucciones de HiveQL](EMRforDynamoDB.ProcessingHiveQL.md)
+ [Consulta de datos en DynamoDB](EMRforDynamoDB.Querying.md)
+ [Copia de datos en y desde Amazon DynamoDB](EMRforDynamoDB.CopyingData.md)
+ [Ajuste del rendimiento](EMRforDynamoDB.PerformanceTuning.md)

## Descripción general
<a name="EMRforDynamoDB.Overview"></a>

Amazon EMR es un servicio que facilita el procesamiento rápido y rentable de enormes volúmenes de datos. Para utilizar Amazon EMR, se lanza un clúster administrado de instancias de Amazon EC2 que ejecutan el marco de trabajo de código abierto Hadoop. *Hadoop* es una aplicación distribuida que implementa el algoritmo de MapReduce, en virtud del cual se mapea una tarea a varios nodos del clúster. En paralelo con los demás nodos, cada nodo procesa el trabajo que se ha designado para él. Por último, las salidas se reducen a un solo nodo, que produce el resultado final.

Puede lanzar el clúster de Amazon EMR de modo que sea persistente o transitorio:
+ Un clúster *persistente* se ejecuta hasta que se cierra. Los clústeres persistentes son idóneos para el análisis de datos, el almacenamiento de datos o cualquier otro uso interactivo.
+ Un clúster *transitorio* se ejecuta el tiempo suficiente para procesar un flujo de trabajo y, a continuación, se cierra automáticamente. Los clústeres transitorios son idóneos para las tareas de procesamiento periódicas, tales como la ejecución de scripts.

Para obtener más información sobre la arquitectura y administración de Amazon EMR, consulte la [Guía de administración de Amazon EMR](https://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide).

Cuando se lanza un clúster de Amazon EMR, se especifica el número inicial y el tipo de instancias de Amazon EC2. También se especifican otras aplicaciones distribuidas (además de Hadoop) que se desea ejecutar en el clúster. Estas aplicaciones son, entre otras, Hue, Mahout, Pig o Spark.

Para obtener información sobre las aplicaciones para Amazon EMR, consulte la [Guía de emisión de Amazon EMR](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide).

Según la configuración del clúster, puede que disponga de uno o varios de los tipos de nodos siguientes:
+ Nodo líder: administra el clúster coordinando la distribución del ejecutable de MapReduce y de los subconjuntos de datos sin procesar, hasta los grupos de instancias principal y de tareas. También hace un seguimiento del estado de cada tarea realizada y monitorea la salud de los grupos de instancias. Solo hay un nodo líder en un clúster.
+ Nodos principales: ejecutan tareas de MapReduce y almacenan datos utilizando el Hadoop Distributed File System (HDFS).
+ Nodos de tareas (opcionales): ejecutan las tareas de MapReduce.