Hive 叢集錯誤 - Amazon EMR

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

Hive 叢集錯誤

您通常可在 syslog 檔案中找到 Hive 錯誤的原因,您可從 Steps (步驟) 窗格連結至該檔案。如果您無法在該處判斷問題,請查看 Hadoop 任務嘗試錯誤訊息。從 Task Attempts (任務嘗試) 窗格即可連結至該訊息。

以下是 Hive 叢集常見的錯誤。

您是否使用最新版的 Hive?

最新版的 Hive 包含所有最新的修補程式和錯誤修正,或許可以解決您的問題。

您是否在 Hive 指令碼中遇到語法錯誤?

如果某個步驟失敗,請查看日誌的 stdout 檔案中執行 Hive 指令碼的步驟。如果錯誤不是在該處發生,請查看任務嘗試日誌的 syslog 檔案中是否有失敗的任務嘗試。如需詳細資訊,請參閱檢視 日誌檔

任務是否在互動執行時失敗?

如果您在主節點上以互動方式執行 Hive,但叢集失敗,請查看任務嘗試日誌中的 syslog 項目,了解失敗的任務。如需詳細資訊,請參閱檢視 日誌檔

您在 Amazon S3 與 Hive 之間來回載入資料時是否遇到困難?

如果您無法存取 Amazon S3 中的資料,請先查看 您在 Amazon S3 之間來回載入資料時是否遇到困難? 中列出的可能原因。如果這些問題都不是原因所在,請考慮下列 Hive 專屬的選項。

  • 務必確認您使用的是最新版的 Hive,當中包含所有最新的修補程式和錯誤修正,或許可以解決您的問題。如需詳細資訊,請參閱 Apache Hive

  • 使用 INSERT OVERWRITE 需要列出 Amazon S3 儲存貯體或資料夾的內容。這是一項昂貴的操作。如有可能,請手動刪除路徑而不要使用 Hive 清單,並刪除現有物件。

  • 如果您使用 5.0 之前的 Amazon EMR 發行版本,則可以在 HiveQL 中使用以下命令在叢集上預先快取本機 Amazon S3 清單操作的結果:

    set hive.optimize.s3.query=true;
  • 盡可能使用靜態分割區。

  • 在某些版本的 Hive 和 Amazon 中EMR,使用可能ALTERTABLES會失敗,因為資料表儲存在與 Hive 預期不同的位置。解決方法是新增或更新 /home/hadoop/conf/core-site.xml 的下列項目:

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