apache-hive / 3.1.1 / reference / HiveAmazonElasticMapReduce.html

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 驱动程序:

以下是使用 JDBC 驱动程序连接到 Hive 服务器的过程:

http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_Hive.html#HiveJDBCDriver

运行批处理查询

您也可以从命令行 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:

此外,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