案例:Azure HDInsight 中叢集節點的磁碟空間不足

本文說明與 Azure HDInsight 叢集互動時若遇到問題,可使用哪些疑難排解步驟和可能的解決方案。

問題

工作可能失敗,且錯誤訊息類似:/usr/hdp/2.6.3.2-14/hadoop/libexec/hadoop-config.sh: fork: No space left on device.

或者,您可能會接收到與下面類似的 Apache Ambari 警示:local-dirs usable space is below configured utilization percentage

原因

Apache Yarn 應用程式快取可能已耗用所有可用的磁碟空間。 您的 Spark 應用程式可能執行效率不佳。

解決方法

  1. 使用 Ambari UI 來判斷哪個節點已用盡磁碟空間。

  2. 判斷有問題節點中的哪一個資料夾用掉大部分的磁碟空間。 先透過 SSH 連線至節點,然後執行 df 以列出所有掛接的磁碟使用量。 其通常是 /mnt,而這是 OSS 所使用的暫存磁碟。 您可以輸入資料夾,然後輸入 sudo du -hs 以在資料夾下顯示摘要的檔案大小。 如果您看到類似 /mnt/resource/hadoop/yarn/local/usercache/livy/appcache/application_1537280705629_0007 的資料夾,則此輸出表示應用程式仍在執行中。 此輸出可能是 RDD 持續性或中繼隨機檔案所造成。

  3. 若要減輕此問題,請終止應用程式,以釋出該應用程式所使用的磁碟空間。

  4. 如果背景工作節點上頻繁發生此問題,則您可以微調叢集上的 YARN 本機快取設定。

    開啟 Ambari UI,並導覽至 [YARN] --> [設定] --> [進階]。
    將下列兩個屬性新增至自訂 yarn-site.xml 區段,並儲存:

    yarn.nodemanager.localizer.cache.target-size-mb=2048
    yarn.nodemanager.localizer.cache.cleanup.interval-ms=300000
    
  5. 如果上述項目未永久修正此問題,則請將您的應用程式最佳化。

下一步

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

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

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

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