共用方式為


案例:本機 HDFS 在 Azure HDInsight 叢集上卡在安全模式中

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

問題

本機 Apache Hadoop 分散式檔案系統 (HDFS) 在 HDInsight 叢集上卡在安全模式中。 您會收到類似下列的錯誤訊息:

hdiuser@spark2:~$ hdfs dfs -D "fs.default.name=hdfs://mycluster/" -mkdir /temp
17/04/05 16:20:52 WARN retry.RetryInvocationHandler: Exception while invoking ClientNamenodeProtocolTranslatorPB.mkdirs over spark2.2oyzcdm4sfjuzjmj5dnmvscjpg.dx.internal.cloudapp.net/10.0.0.22:8020. Not retrying because try once and fail.
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /temp. Name node is in safe mode.
It was turned on manually. Use "hdfs dfsadmin -safemode leave" to turn safe mode off.
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1359)
...
mkdir: Cannot create directory /temp. Name node is in safe mode.

原因

HDInsight 叢集已調降為低於或節點數目接近 HDFS 複寫因數的極少數節點。

解決方法

  1. 使用下列命令報告 HDInsight 叢集上的 HDFS 狀態:

    hdfs dfsadmin -D "fs.default.name=hdfs://mycluster/" -report
    
  2. 使用下列命令檢查 HDInsight 叢集上的 HDFS 完整性:

    hdiuser@spark2:~$ hdfs fsck -D "fs.default.name=hdfs://mycluster/" /
    
  3. 如果確定沒有遺漏、損毀或複寫中的區塊,或是這些區塊可以予以忽略,請執行下列命令使名稱節點脫離安全模式:

    hdfs dfsadmin -D "fs.default.name=hdfs://mycluster/" -safemode leave
    

下一步

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

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

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

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