Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Hive 集群错误

您通常可以在 syslog 文件中找出 Hive 错误的原因,可以从“Steps”窗格中链接到此文件。如果您无法在此文件中确定问题,那么可以检查 Hadoop 任务尝试错误消息。在“Task Attempts”窗格上链接到此问题。

Hive 集群常会出现以下错误。

您使用的是否是最新版本的 Hive?

最新版本的 Hive 具有所有当前修补程序和缺陷修复,可以解决您的问题。

您是否在 Hive 脚本中遇到了语法错误?

如果步骤失败,请查看运行 Hive 脚本步骤日志的 stdout 文件。如果错误不在此文件中,请查看失败任务尝试的任务尝试日志的 syslog 文件。有关更多信息,请参阅 查看日志文件

作业是否在交互运行时失败?

如果您在主节点上交互运行 Hive 并且集群失败,那么请查看失败任务尝试的任务尝试日志中的 syslog 条目。有关更多信息,请参阅 查看日志文件

您是否有关于在 Amazon S3 与 Hive 之间加载数据的问题?

如果您有关于访问 Amazon S3 中数据的问题,那么请先检查 您在向 Amazon S3 装载数据或者从中移出数据时是否遇到问题? 中列出的可能原因。如果那些问题都不是原因,请考虑以下 Hive 特定的选项。

  • 确保您使用的是最新版本的 Hive,它具有可解决您的问题的所有当前修补程序和错误修复。有关更多信息,请参阅 Apache Hive

  • 使用 INSERT OVERWRITE 要求列出 Amazon S3 存储段或文件夹的内容。这是一项成本高昂的操作。如果可能的话,请手动修剪路径,而不是让 Hive 列出并删除现有数据元。

  • 在集群上本地预缓存 Amazon S3 列表操作的结果。使用以下命令在 HiveQL 中执行此操作:set hive.optimize.s3.query=true;

  • 在可能的情况下,使用静态分割。

  • 在 Hive 和 Amazon EMR 的一些版本中,使用 ALTER TABLES 有可能会失败,因为此表的存储位置可能与 Hive 的期望位置不同。解决方法是在 /home/hadoop/conf/core-site.xml 中添加或更新以下内容:

    <property> <name>fs.s3n.endpoint</name> <value>s3.amazonaws.com</value> </property>