DynamoDB-MapReduce


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

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

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

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

DynamoDB/EMR 集成先决条件

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

  • AWS 账户
  • EMR 操作中使用的同一账户下的填充表
  • 具有 DynamoDB 连接的自定义 Hive 版本
  • DynamoDB 连接支持
  • S3 存储桶(可选)
  • SSH 客户端(可选)
  • EC2 密钥对(可选)

配置单元设置

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

您可以按照以下步骤执行此操作 -

  • 登录管理控制台,然后打开位于https://console.aws.amazon.com/ec2/的 EC2 控制台

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

  • 在导航窗格中,选择密钥对

  • 选择创建密钥对

  • 密钥对名称字段中,输入名称并选择创建

  • 下载使用以下格式的生成的私钥文件:filename.pem。

注意- 如果没有密钥对,您将无法连接到 EC2 实例。

蜂巢集群

创建启用 Hive 的集群来运行 Hive。它构建 Hive 到 DynamoDB 连接所需的应用程序和基础设施环境。

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

  • 访问 EMR 控制台。

  • 选择创建集群

  • 在创建屏幕中,使用集群的描述性名称设置集群配置,选择“是”进行终止保护,并选中“已启用”用于日志记录、“S3 目标”用于日志文件夹 S3 位置,以及“已启用”用于调试。

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

  • 在“硬件配置”屏幕中,确保字段保留“网络”为“启动到 EC2-Classic ”、“EC2 可用区没有首选项”、“主 Amazon EC2 实例类型的默认值”、“不检查请求 Spot 实例”、“核心 Amazon EC2 实例的默认值”类型,2表示计数,不检查请求竞价型实例,默认为任务-Amazon EC2 实例类型,0表示计数,不检查请求竞价型实例。

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

  • 在安全和访问屏幕中,确保字段将您的密钥对保存在 EC2 密钥对中、 IAM 用户访问权限中没有其他 IAM 用户以及IAM 角色中没有角色的情况下继续。

  • 查看“引导操作”屏幕,但不要对其进行修改。

  • 检查设置,完成后选择“创建集群” 。

摘要窗格出现在集群的开头。

激活 SSH 会话

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

如果没有 PuTTY,请安装它。然后启动 PuTTYgen 并选择Load。选择您的 PEM 文件并将其打开。PuTTYgen 将通知您导入成功。选择“保存私钥”以 PuTTY 私钥格式 (PPK) 保存,然后选择“是”以在不使用密码短语的情况下保存。然后输入 PuTTY 密钥的名称,点击“保存”,然后关闭 PuTTYgen。

首先启动 PuTTY,使用 PuTTY 与主节点建立连接。从类别列表中选择会话。在主机名字段中输入 hadoop@DNS。在类别列表中展开连接 > SSH ,然后选择Auth。在控制选项屏幕中,选择浏览私钥文件以进行身份​​验证。然后选择您的私钥文件并打开它。对于安全警报弹出窗口,选择“是” 。

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

蜂巢表

Hive 用作数据仓库工具,允许使用HiveQL对 EMR 集群进行查询。前面的设置会给您一个工作提示。只需输入“hive”,然后输入您想要的任何命令即可以交互方式运行 Hive 命令。有关Hive的更多信息,请参阅我们的 Hive 教程。