On this page
Amazon Elastic MapReduce 和 Hive
Amazon Elastic MapReduce 是一项 Web 服务,可轻松在 Amazon Web Services(AWS)的 Web 级基础架构上启动可调整大小的托管 Hadoop 集群。 Elastic Map Reduce 使您可以轻松启动 Hive 和 Hadoop 集群,使您可以灵活地选择不同的集群大小,并允许您在处理完成后自动将其拆除。您只需为您使用的资源付费,没有最低限度或长期承诺。
Amazon Elastic MapReduce 通过以下方式简化了 Hive 集群的使用:
处理多达数千个 EC2 实例的 Hadoop 集群的配置
在群集的主节点和从节点上安装 Hadoop 并根据所选硬件配置 Hadoop
在群集的主节点上安装 Hive 并将其配置为与 Hadoop JobTracker 和 NameNode 通信
提供一个简单的 API,一个 Web UI 和专用工具,用于在集群的整个生命周期内 Management,监视和调试 Hadoop 任务
通过诸如 S3 和 EC2 之类的 AWS 服务以及竞价型实例,弹性 IP 以及身份和访问 Management(IAM)之类的 AWS 功能提供深度集成和优化的性能
请参考以下链接以查看《 Amazon Elastic MapReduce 入门指南》:
http://docs.amazonwebservices.com/ElasticMapReduce/latest/GettingStartedGuide/
Amazon Elastic MapReduce 为您提供了多个 Client 端来运行您的 Hive 集群。您可以使用 AWSManagement 控制台,Amazon Elastic MapReduce RubyClient 端或 AWS Java SDK 启动 Hive 集群。您还可以在同一群集上安装并运行多个版本的 Hive,从而可以将较新的 Hive 版本与以前的版本进行基准测试。您还可以将较新的 Hive 版本直接安装到现有的 Hive 群集上。
Supported versions:
Hadoop Version | Hive Version |
0.18 | 0.4 |
0.20 | 0.5, 0.7, 0.7.1 |
Hive Defaults
节俭的通讯端口
Hive Version | Thrift port |
0.4 | 10000 |
0.5 | 10000 |
0.7 | 10001 |
0.7.1 | 10002 |
Log File
Hive Version | Log location |
0.4 | /mnt/var/log/apps/hive.log |
0.5 | /mnt/var/log/apps/hive_05.log |
0.7 | /mnt/var/log/apps/hive_07.log |
0.7.1 | /mnt/var/log/apps/hive_07_1.log |
MetaStore
默认情况下,Amazon Elastic MapReduce 对其 Hive 元存储库使用预安装在主节点上的 MySQL。或者,您可以使用 Amazon Relational Database Service(Amazon RDS)来确保元存储在群集的整个生命周期之外都可以持久保存。这也使您可以在多个 Hive 群集之间共享元存储。只需将 MySQL 数据库的默认位置覆盖到外部持久性存储位置即可。
Hive CLI
EMR 将主节点配置为允许 SSH 访问。您可以登录到主节点并使用 Hive CLI 执行 Hive 命令。如果群集上安装了多个版本的 Hive,则可以通过单独的命令访问每个版本:
Hive Version | Hive command |
0.4 | hive |
0.5 | hive-0.5 |
0.7 | hive-0.7 |
0.7.1 | hive-0.7.1 |
EMR 为给定群集上的每个已安装的 Hive 版本设置单独的 Hive Metastore 和 Hive 仓库。因此,使用一个版本创建表不会干扰使用已安装另一版本创建的表。请注意,如果您将多个 Hive 表指向同一位置,则对一个表的更新将对其他表可见。
Hive Server
EMR 在 Hive 群集的主节点上运行 Thrift Hive 服务器。可以使用任何 JDBCClient 端(例如,squirrel SQL)通过 Hive JDBC 驱动程序对其进行访问。可以通过以下链接下载用于不同 Hive 版本的 JDBC 驱动程序:
Hive Version | Hive JDBC |
0.5 | http://aws.amazon.com/developertools/0196055244487017 |
0.7 | http://aws.amazon.com/developertools/1818074809286277 |
0.7.1 | http://aws.amazon.com/developertools/8084613472207189 |
以下是使用 JDBC 驱动程序连接到 Hive 服务器的过程:
运行批处理查询
您也可以从命令行 Client 端远程提交查询。请注意,当前每个群集上最多只能有 256 个步骤。如果要执行的步骤超过 256 个,建议您直接使用 Hive CLI 运行查询或通过 JDBC 驱动程序提交查询。
Hive S3 表
配置了一个弹性 MapReduce Hive 群集以与 S3 通信。您可以创建表并将它们指向您的 S3 位置,Hive 和 Hadoop 将使用您提供的凭据自动与 S3 通信。
将数据移至 S3 存储桶后,只需将表指向 S3 中的该位置即可通过 Hive 读取或处理数据。您也可以在 S3 中创建分区表。 Hive on Elastic MapReduce 提供了对 S3 中动态分区的支持。
Hive Logs
Hive 应用程序日志:所有 Hive 应用程序日志都重定向到/ mnt/var/log/apps /目录。
Hadoop 守护程序日志:Hadoop 守护程序日志位于/ mnt/var/log/hadoop /文件夹中。
Hadoop 任务尝试日志可在群集中每个从节点上的/ mnt/var/log/hadoop/userlogs /文件夹中找到。
Tutorials
以下 Hive 教程可供您在 Elastic MapReduce 上开始使用 Hive:
在 Elastic MapReduce 上使用 Google 图书 n-grams 数据和 Apache Hive 查找热门 Topic
http://aws.amazon.com/articles/Elastic-MapReduce/5249664154115844
使用具有高性能计算实例的 Apache Hive 和 Amazon Elastic MapReduce 进行上下文广告
使用 Hive,Amazon Elastic MapReduce 和 Amazon SimpleDB 操作数据仓库
在 Amazon ElasticMap Reduce 上运行 Hive
此外,Amazon 还提供了分步视频教程:
Support
您可以在 Elastic MapReduce 论坛上的 Elastic MapReduce 上询问与 Hive 相关的问题:
https://forums.aws.amazon.com/forum.jspa?forumID=52
另请参阅 EMR 开发人员指南以获取更多信息:
http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/
供稿人:Vaibhav Aggarwal