

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Hive 集群错误
<a name="emr-troubleshoot-error-hive"></a>

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

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

**Topics**
+ [您使用的是否是最新版本的 Hive？](#emr-troubleshoot-error-hive-0)
+ [您是否在 Hive 脚本中遇到了语法错误？](#emr-troubleshoot-error-hive-1)
+ [作业是否在交互运行时失败？](#emr-troubleshoot-error-hive-2)
+ [您是否有关于在 Amazon S3 与 Hive 之间加载数据的问题？](#emr-troubleshoot-error-hive-3)

## 您使用的是否是最新版本的 Hive？
<a name="emr-troubleshoot-error-hive-0"></a>

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

## 您是否在 Hive 脚本中遇到了语法错误？
<a name="emr-troubleshoot-error-hive-1"></a>

 如果步骤失败，请查看运行 Hive 脚本步骤日志的 `stdout` 文件。如果错误不在此文件中，请查看失败任务尝试的任务尝试日志的 `syslog` 文件。有关更多信息，请参阅[查看 Amazon EMR 日志文件](emr-manage-view-web-log-files.md)。

## 作业是否在交互运行时失败？
<a name="emr-troubleshoot-error-hive-2"></a>

 如果您在主节点上交互运行 Hive 并且集群失败，那么请查看失败任务尝试的任务尝试日志中的 `syslog` 条目。有关更多信息，请参阅[查看 Amazon EMR 日志文件](emr-manage-view-web-log-files.md)。

## 您是否有关于在 Amazon S3 与 Hive 之间加载数据的问题？
<a name="emr-troubleshoot-error-hive-3"></a>

 如果您有关于访问 Amazon S3 中数据的问题，那么请先检查 [您在向 Amazon S3 装载数据或者从中移出数据时是否遇到问题？](emr-troubleshoot-errors-io.md#emr-troubleshoot-errors-io-1) 中列出的可能原因。如果那些问题都不是原因，请考虑以下 Hive 特定的选项。
+ 确保您使用的是最新版本的 Hive，它具有可解决您的问题的所有当前修补程序和错误修复。有关更多信息，请参阅 [Apache Hive](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive.html)。
+  使用 `INSERT OVERWRITE` 要求列出 Amazon S3 存储桶或文件夹的内容。这是一项成本高昂的操作。如果可能的话，请手动修剪路径，而不是让 Hive 列出并删除现有对象。
+ 如果您使用 5.0 之前的 Amazon EMR 发行版，则可以使用 HiveQL 中的以下命令，在集群上本地预缓存 Amazon S3 列表操作的结果：

  ```
  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>
  ```