

# 使用 Amazon EMR 的 Apache Hive 处理 DynamoDB 数据
<a name="EMRforDynamoDB"></a>

Amazon DynamoDB 集成 Amazon EMR 上运行的数据仓库应用程序 Apache Hive。Hive 可以读取和写入 DynamoDB 表的数据，从而允许您执行以下操作：
+ 使用类似 SQL 的语言 (HiveQL) 查询实时 DynamoDB 数据。
+ 将数据从 DynamoDB 表复制到 Amazon S3 存储桶，反之亦然。
+ 将数据从 DynamoDB 数据复制到 Hadoop Distributed File System（HDFS），反之亦然。
+ 对 DynamoDB 表执行联接操作。

**Topics**
+ [概述](#EMRforDynamoDB.Overview)
+ [教程：使用 Amazon DynamoDB 和 Apache Hive](EMRforDynamoDB.Tutorial.md)
+ [在 Hive 中创建外部表](EMRforDynamoDB.ExternalTableForDDB.md)
+ [处理 HiveQL 语句](EMRforDynamoDB.ProcessingHiveQL.md)
+ [查询 DynamoDB 中的数据](EMRforDynamoDB.Querying.md)
+ [在 Amazon DynamoDB 之间复制数据](EMRforDynamoDB.CopyingData.md)
+ [性能优化](EMRforDynamoDB.PerformanceTuning.md)

## 概述
<a name="EMRforDynamoDB.Overview"></a>

Amazon EMR 服务方便快速经济地处理海量数据。要使用 Amazon EMR，启动一个运行 Hadoop 开源框架的 Amazon EC2 实例托管集群。*Hadoop* 是实现 MapReduce 算法的分布式应用程序，任务映射到集群的多个节点。每个节点与其他节点并行处理指定工作。最后，在单个节点上还原输出，得到最终结果。

可以选择启动持久或瞬时 Amazon EMR 集群：
+ *持久*集群一直运行，直到关闭。持久集群非常适合数据分析、数据仓库或任何其他交互式使用。
+ *瞬时*集群运行处理任务流的时间，然后自动关闭。瞬时集群非常适合定期处理任务，例如运行脚本。

有关 Amazon EMR 架构和管理的信息，请参见 [Amazon EMR 管理指南](https://docs.amazonaws.cn/ElasticMapReduce/latest/ManagementGuide)。

启动 Amazon EMR 集群后，指定 Amazon EC2 实例的初始数量和类型。还指定要在集群上运行的其他分布式应用程序（除 Hadoop 本身之外）。这些应用程序包括 Hue、Mahout、Pig、Spark 等。

有关 Amazon EMR 应用程序的信息，请参见 [Amazon EMR 版本指南](https://docs.amazonaws.cn/ElasticMapReduce/latest/ReleaseGuide)。

根据集群配置，可能有以下一种或多种节点类型：
+ 主节点 – 管理集群，协调将 MapReduce 可执行文件和原始数据子集分配到核心实例组和任务实例组。此外，它还跟踪执行的每项任务的状态并监控实例组的运行状况。集群只有一个主节点。
+ 核心节点 - 使用 Hadoop Distributed File System（HDFS）运行 MapReduce 任务和存储数据。
+ 任务节点（可选）— 运行 MapReduce 任务。