Share via


了解並解決 HDInsight 上從 WebHCat 收到的錯誤

了解搭配 HDInsight 使用 WebHCat 時遇到的錯誤,以及如何解決它們。 WebHCat 是由用戶端工具 (例如 Azure PowerShell 與 Data Lake Tools for Visual Studio) 在內部使用。

什麼是 WebHCat?

WebHCat 是適用於 HCatalog (Apache Hadoop 的資料表和儲存體管理層) 的 REST API。 WebHCat 預設會在 HDInsight 叢集上啟用,並由各種工具用來提交工作、取得工作狀態等,而不需登入叢集。

修改組態

因為已超過設定的上限,而發生本文件中所列的幾個錯誤。 當解決步驟提到您可以變更值時,請使用 Apache Ambari (Web 或 REST API) 來修改此值。 如需詳細資訊,請參閱使用 Apache Ambari 管理 HDInsight

預設的組態

如果超過下列預設值,可能會使得 WebHCat 效能變差或導致發生錯誤:

設定 作用 預設值
[yarn.scheduler.capacity.maximum-applications][maximum-applications] 可以同時為作用中 (擱置或執行中) 的工作數目上限 10,000
templeton.exec.max-procs 可以同時提供服務的要求數目上限 20
[mapreduce.jobhistory.max-age-ms][max-age-ms] 將保留作業歷程記錄的天數 7 天

太多要求

HTTP 狀態碼:429

原因 解決方案
您已超出 WebHCat 每分鐘提供服務的並行要求上限 (預設值為 20) 減少您的工作負載以確保不會提交超過並行要求數目上限,或藉由修改 templeton.exec.max-procs,來提高並行要求限制。 如需詳細資訊,請參閱修改組態

無法使用伺服器

HTTP 狀態碼:503

原因 解決方案
此狀態碼通常發生於叢集的主要和次要 HeadNode 間的容錯移轉期間 等候兩分鐘,然後重試作業

不正確的要求內容:找不到工作

HTTP 狀態碼:400

原因 解決方案
工作歷程記錄清除器已清除工作詳細資料 工作歷程記錄的預設保留期間為七天。 您可以透過修改 mapreduce.jobhistory.max-age-ms 來變更預設保留期間。 如需詳細資訊,請參閱修改組態
作業因為容錯移轉而遭到刪除 最多重試工作提交兩分鐘
已使用無效的作業識別碼 檢查作業識別碼是否正確

閘道不正確

HTTP 狀態碼:502

原因 解決方案
內部記憶體回收會發生於 WebHCat 程序中 等候記憶體回收完成,或重新啟動 WebHCat 服務
等候 ResourceManager 服務回應時逾時。 此錯誤發生於作用中應用程式的數目達到設定的最大值時 (預設值為 10,000) 等候目前執行中的工作完成,或修改 yarn.scheduler.capacity.maximum-applications以提高並行工作限制。 如需詳細資訊,請參閱修改組態一節。
嘗試在 Fields 設定為 * 時透過 GET /jobs 呼叫擷取所有作業 不要擷取所有作業詳細資料。 請改為使用 jobid 只擷取大於特定作業識別碼的作業詳細資料。 或者,不要使用 Fields
WebHCat 服務在 HeadNode 容錯移轉期間關閉 等候兩分鐘,然後重試作業
有 500 個以上透過 WebHCat 提交的擱置工作 等到目前擱置的工作完成,再送出更多工作

下一步

如果您沒有看到您的問題,或無法解決您的問題,請瀏覽下列其中一個管道以取得更多支援:

  • 透過 Azure 社群支援獲得由 Azure 專家所提供的解答。

  • 連線至 @AzureSupport,這是用來改善客戶體驗的官方 Microsoft Azure 帳戶。 將 Azure 社群連線到正確的資源:解答、支援和專家。

  • 如果需要更多協助,您可在 Azure 入口網站提交支援要求。 從功能表列中選取 [支援] 或開啟 [說明 + 支援] 中樞。 如需詳細資訊,請參閱如何建立 Azure 支援要求。 Microsoft Azure 訂用帳戶包括訂用帳戶管理及帳務支援的存取權,而技術支援由其中一項 Azure 支援方案提供。