

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

 如果某個步驟失敗，請查看日誌的 `stdout` 檔案中執行 Hive 指令碼的步驟。如果錯誤不是在該處發生，請查看任務嘗試日誌的 `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>
  ```