Apache Hive 是一个开源、分布式容错系统,可提供类似于数据仓库的查询功能。它让用户可以使用类似于 SQL 的接口读取、写入并管理 PB 级数据。
Amazon EMR 原生支持 Apache HBase,而且您可以通过亚马逊云科技管理控制台、亚马逊云科技 CLI 或 Amazon EMR API 快速而轻松地创建托管式 Apache Hive 集群。此外,您还可以利用其他 Amazon EMR 功能,包括直接连接至 Amazon DynamoDB 或 Amazon S3 以进行存储,与 Amazon Glue 数据目录集成,Amazon Lake Formation、Amazon RDS,或用于外部元存储的 Amazon Aurora 以及 EMR 托管式扩缩,以便添加或移除您的集群当中的实例。
功能与优点
高可用性
您可以启动具有多个主节点的 EMR 集群,以支持 Apache Hive 的高可用性。如果主节点出现故障或者资源管理器或名称节点等关键进程崩溃,Amazon EMR 会自动故障转移到备用主节点。这意味着您可以在 EMR 集群上无中断地运行 Apache Hive。
托管式扩缩
Amazon EMR 允许为·Apache Hive 集群定义 EMR 托管式扩缩,以帮助优化资源的使用情况。使用 EMR 托管式扩缩,可以自动调整集群大小,从而以尽可能低的成本获得最佳性能。使用 EMR 托管式扩缩,您可以为您的集群指定最小和最大计算限制,而 Amazon EMR 将自动调整它们的大小,以实现最佳性能和最高资源利用率。EMR 托管式扩缩会持续对与在集群上运行的工作负载相关的关键指标进行采样。
显著提升性能
Amazon EMR 6.0.0 增加了对 Hive LLAP 的支持,实现了两倍于 EMR 5.29 的平均运行速度。现在,您可以在 Amazon EMR 上将 S3 Select 与 Hive 结合使用,以提高性能。S3 Select 允许应用程序从对象中检索一部分数据,因此减少了在 Amazon EMR 与 Amazon S3 之间传输的数据量。Amazon EMR 还可以快速处理复杂的 Apache Hive 查询。默认情况下,EMR 使用 Apache Tez,它的速度要快得多。Apache MapReduce 使用多个阶段,因此会将复杂的 Apache Hive 查询分解为四到五个任务。Apache Tez 专为更复杂的查询而设计,因此 Apache Tez 上的同一个任务会在一个任务中运行,这样就大大加快了任务的运行速度。
灵活的元存储选项
使用 Amazon EMR,您可以选择将元存储保留在本地或将其外在化。EMR 可与 Amazon Glue 数据目录和 Amazon Lake Formation 集成,因此 EMR 可以直接从 Glue 或 Lake Formation 提取信息,以便填充到云存储。
详细了解 Amazon EMR 定价