Dynamodb 简明教程

DynamoDB - MapReduce

亚马逊的弹性 MapReduce (EMR) 允许您快速高效地处理大数据。EMR 在 EC2 实例上运行 Apache Hadoop,但简化了流程。您可以利用 Apache Hive 通过 HiveQL 来查询映射归约作业流,该查询语言类似于 SQL。Apache Hive 是一种优化查询和应用程序的方法。

您可以使用管理控制台的 EMR 选项卡、EMR CLI、API 或 SDK 来启动作业流。您还可以选择交互式运行 Hive 或利用脚本。

然而,EMR 读/写操作会影响吞吐量消耗,在大型请求中,它会使用退避算法的保护执行重试。此外,与其他操作和任务同时运行 EMR 可能会导致限制。

DynamoDB/EMR 集成不支持二进制和二进制集属性。

DynamoDB/EMR Integration Prerequisites

在使用 EMR 之前查看此必要项目清单 -

  1. An AWS account

  2. 使用 EMR 操作的同一帐户下的已填充的表

  3. 具有 DynamoDB 连接的自定义 Hive 版本

  4. DynamoDB connectivity support

  5. An S3 bucket (optional)

  6. An SSH client (optional)

  7. EC2 密钥对(可选)

Hive Setup

在使用 EMR 之前,创建一个密钥对以交互方式运行 Hive。密钥对允许连接到 EC2 实例和作业流的主节点。

您可以通过以下步骤执行此操作 -

  1. 登录到管理控制台,并打开位于 https://console.aws.amazon.com/ec2/ 的 EC2 控制台

  2. 在控制台的右上角区域中选择一个区域。确保该区域与 DynamoDB 区域相匹配。

  3. 在“导航”窗格中,选择 Key Pairs

  4. Select Create Key Pair.

  5. Key Pair Name 字段中,输入名称并选择 Create

  6. 下载生成的文件名为 filename.pem 的私钥文件。

Note − 无法在没有密钥对的情况下连接到 EC2 实例。

Hive Cluster

创建一个支持 Hive 的群集以运行 Hive。它将构建一个适用于 Hive 到 DynamoDB 连接的应用程序和基础设施必需的环境。

您可以通过执行以下步骤来执行此任务 −

  1. Access the EMR console.

  2. Select Create Cluster.

  3. 在创建屏幕中,设置群集配置并为群集设置一个描述性名称,为终止保护选择 Yes ,并选中 Enabled 以进行日志记录,选中 log folder S3 location 的 S3 目标,选中 Enabled 以进行调试。

  4. 在“软件配置”屏幕中,确保字段包含 Hadoop 发行版的 Amazon 、AMI 版本的最新版本、适用于已安装 Hive 应用程序的默认 Hive 版本,以及适用于已安装 Pig 应用程序的默认 Pig 版本。

  5. 在“硬件配置”屏幕中,确保字段包含 Launch into EC2-Classic 的网络, No Preference 的 EC2 可用区、主 Amazon EC2 实例类型的默认值、不选中“请求 Spot 实例”,核心 Amazon EC2 实例类型的默认值, 2 的计数、不选中“请求 Spot 实例”,任务 Amazon EC2 实例类型的默认值, 0 的计数,以及不选中“请求 Spot 实例”。

务必设置一个限制以提供足够的容量来防止群集故障。

  1. 在“安全和访问”屏幕中,确保字段包含您的密钥对中的 EC2 密钥对, No other IAM users 中的 IAM 用户访问权限,以及 Proceed without roles 中的 IAM 角色。

  2. 查看“自举操作”屏幕,但不要修改它。

  3. 查看设置,完成后选择 Create Cluster

Summary 窗格出现在群集开始时。

Activate SSH Session

您需要一个活动 SSH 会话来连接到主节点并执行 CLI 操作。通过在 EMR 控制台中选择群集来找到主节点。它将主节点列为 Master Public DNS Name

如果没有 PuTTY,请安装它。然后启动 PuTTYgen 并选择 Load 。选择您的 PEM 文件并将其打开。PuTTYgen 将通知您导入成功。选择 Save private key 以采用 PuTTY 私钥格式 (PPK) 保存,选择 Yes 以在不使用口令的情况下保存。然后为 PuTTY 密钥输入一个名称,按 Save 并关闭 PuTTYgen。

先启动 PuTTY,然后使用 PuTTY 连接到主节点。从“类别”列表中选择 Session 。在“主机名”字段中输入 hadoop@DNS。展开“SSH”下的“类别”列表,选择 Auth 。在控制选项屏幕中,选择 Browse 以进行用于验证的私钥文件。然后选择您的私钥文件并将其打开。选择 Yes 以响应弹出安全警报。

连接到主节点后,会出现 Hadoop 命令提示符,这意味着您可以开始一个交互式 Hive 会话。

Hive Table

Hive 作为一款数据仓库工具,可使用 HiveQL 查询 EMR 集群。之前的设置可提供一个有用的提示。通过输入“hive”并输入您希望执行的任何命令,互动式运行 Hive 命令。请参阅我们的 Hive 教程,以了解 Hive 的详细信息。