了解並解決 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 支援方案提供。