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。 它构建了 Hive 到 DynamoDB 连接所需的应用程序和基础设施环境。

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

  • 访问 EMR 控制台。

  • 选择创建集群

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

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

  • 在硬件配置屏幕中,确保字段对于网络为启动到 EC2-Classic,对于 EC2 可用区为无首选项,对于 Master-Amazon EC2 实例类型为默认值,对于请求 Spot 实例不进行检查, Core-Amazon EC2 实例类型的默认值,2 表示计数,不检查请求 Spot 实例,任务 Amazon EC2 实例类型的默认值,计数的默认值为 0,并且不检查请求 Spot 实例。

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

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

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

  • 查看设置,完成后选择创建集群

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

激活 SSH 会话

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

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

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

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

Hive 表

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