DynamoDB – MapReduce
DynamoDB – MapReduce
Amazon 的 Elastic MapReduce (EMR) 可让您快速高效地处理大数据。EMR 在 EC2 实例上运行 Apache Hadoop,但简化了流程。您可以使用 Apache Hive通过HiveQL(一种类似于 SQL 的查询语言)查询映射减少作业流。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 区域匹配。
-
在导航窗格中,选择密钥对。
-
选择创建密钥对。
-
在Key Pair Name字段中,输入名称并选择Create。
-
下载使用以下格式生成的私钥文件:filename.pem。
注意– 如果没有密钥对,您将无法连接到 EC2 实例。
蜂巢集群
创建启用 Hive 的集群来运行 Hive。它为 Hive 到 DynamoDB 连接构建所需的应用程序和基础设施环境。
您可以使用以下步骤执行此任务 –
-
访问 EMR 控制台。
-
选择创建集群。
-
在创建屏幕中,使用集群的描述性名称设置集群配置,选择Yes进行终止保护并选中Enabled for logging、S3 destination for log folder S3 location和Enabled for debugging。
-
在“软件配置”屏幕中,确保字段包含用于 Hadoop 分发的Amazon、用于 AMI 版本的最新版本、用于要安装的应用程序的默认 Hive 版本-Hive 以及用于要安装的应用程序的默认 Pig 版本-Pig。
-
在硬件配置屏幕中,确保字段包含Launch into EC2-Classic for Network、No Preference for EC2 Availability Zone、Master-Amazon EC2 Instance Type 的默认值、不检查 Request Spot Instances、Core-Amazon EC2 Instance 的默认值类型,计数为2,不检查请求 Spot 实例,任务-Amazon EC2 实例类型的默认值,计数为0,不检查请求 Spot 实例。
请务必设置提供足够容量的限制以防止集群故障。
-
在 Security and Access 屏幕中,确保字段包含 EC2 密钥对中的密钥对、IAM 用户访问中没有其他 IAM 用户和 IAM角色中没有角色继续。
-
查看 Bootstrap Actions 屏幕,但不要修改它。
-
查看设置,完成后选择创建集群。
一个总结窗格出现在集群的开始。
激活 SSH 会话
您需要一个活动的 SSH 会话来连接到主节点并执行 CLI 操作。通过在 EMR 控制台中选择集群来定位主节点。它将主节点列为Master Public DNS Name。
如果您没有 PuTTY,请安装它。然后启动 PuTTYgen 并选择Load。选择您的 PEM 文件,然后打开它。PuTTYgen 会通知您成功导入。选择Save private key以 PuTTY 私钥格式 (PPK)保存,并选择Yes进行保存,无需密码。然后输入 PuTTY 键的名称,点击Save并关闭 PuTTYgen。
首先启动 PuTTY,使用 PuTTY 与主节点建立连接。从类别列表中选择会话。在主机名字段中输入 hadoop@DNS。在 Category 列表中展开Connection > SSH,然后选择Auth。在控制选项屏幕中,选择浏览用于身份验证的私钥文件。然后选择您的私钥文件并打开它。为安全警报弹出窗口选择是。
连接到主节点后,会出现 Hadoop 命令提示符,这意味着您可以开始交互式 Hive 会话。
蜂巢表
Hive 用作数据仓库工具,允许使用HiveQL对 EMR 集群进行查询。先前的设置为您提供了一个工作提示。只需输入“hive”,然后输入您想要的任何命令,即可交互地运行 Hive 命令。请参阅我们的蜂巢教程的详细信息蜂巢。