Amazon EMR
Amazon EMR 版本指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Amazon EMR 上的 Hive 版本和默认 Apache Hive 的区别

Amazon EMR 上的 Apache Hive 和 Apache Hive 之间的区别

本节介绍 Amazon EMR 上的 Hive 和 http://svn.apache.org/viewvc/hive/branches/ 上提供的默认 Hive 版本之间的区别。

不支持 Hive Live Long and Process (LLAP)

在默认 Apache Hive 版本 2.0 中添加的 LLAP 功能在 Amazon EMR 5.0 版上的 Hive 2.1.0 中不受支持。

Hive 在 Amazon EMR 4.x 版和 5.x 版之间的不同

本节介绍在将 Hive 实施从 Amazon EMR 4.x 版上的 Hive 1.0.0 版迁移到 Amazon EMR 5.x 版上的 Hive 2.x 之前要考虑的区别。

操作区别和注意事项

  • 添加了对 ACID (原子性、一致性、隔离和持久性) 事务的支持:Amazon EMR 4.x 上的 Hive 1.0.0 和默认 Apache Hive 之间的这一区别已经消除。

  • 直接写入 Amazon S3 已消除:Amazon EMR 上的 Hive 1.0.0 和默认 Apache Hive 之间的这一区别已经消除。Amazon EMR 5.x 版上的 Hive 2.1.0 现在创建、读取和写入在 Amazon S3 中存储的临时文件。因此,要读取和写入同一个表,您不再需要在集群的本地 HDFS 文件系统中创建一个临时表作为解决办法。如果您使用受版本控制的存储桶,请确保如下所述管理这些临时文件。

  • 使用 Amazon S3 受版本控制的存储桶时管理临时文件:当您在生成数据的目的地是 Amazon S3 的环境中运行 Hive 查询时,会创建许多临时文件和目录。这是新行为,如上所述。如果您使用受版本控制的 S3 存储桶,那么不删除这些临时文件会使 Amazon S3 凌乱并产生费用。请调整生命周期规则,以便包含 /_tmp 前缀的数据在一个短周期 (例如,五天) 后被删除。有关更多信息,请参阅指定生命周期配置

  • Log4j 已更新到 log4j 2:如果您使用 log4j,则可能因为此升级而需要更改您的日志记录配置。有关更多信息,请参阅 Apache log4j 2

性能区别和注意事项

  • 使用 Tez 时的性能区别:对于 Amazon EMR 5.x 版,Tez 是 Hive 的默认执行引擎,而不是 MapReduce。Tez 为大多数工作流提供更高的性能。

  • ORC 文件性能:对于 ORC 文件,查询性能速度可能低于预期。

  • 具有许多分区的表:生成大量动态分区的查询可能会失败,从具有许多分区的表中进行选择的查询可能需要比预期更长的时间才能执行完毕。例如,从 100,000 个分区中进行选择可能需要 10 分钟或更长时间。