Senaryo: Yerel HDFS, Azure HDInsight kümesinde güvenli modda takıldı

Bu makalede, Azure HDInsight kümeleriyle etkileşim kurarken karşılaşılan sorunlara yönelik sorun giderme adımları ve olası çözümler açıklanmaktadır.

Sorun

Yerel Apache Hadoop Dağıtılmış Dosya Sistemi (HDFS), HDInsight kümesinde güvenli modda takılıyor. Aşağıdakine benzer bir hata iletisi alırsınız:

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.

Nedeni

HDInsight kümesinin ölçeği aşağıda çok az düğüme düşürüldü veya düğüm sayısı HDFS çoğaltma faktörüne yakın.

Çözüm

  1. Aşağıdaki komutla HDInsight kümesinde HDFS'nin durumunu bildirin:

    hdfs dfsadmin -D "fs.default.name=hdfs://mycluster/" -report
    
  2. Aşağıdaki komutla HDInsight kümesinde HDFS'nin bütünlüğünü denetleyin:

    hdiuser@spark2:~$ hdfs fsck -D "fs.default.name=hdfs://mycluster/" /
    
  3. Eksik, bozuk veya çoğaltılmış blokların altında olmadığı belirlenirse veya bu bloklar yoksayılabilirse, ad düğümünü güvenli moddan çıkarmak için aşağıdaki komutu çalıştırın:

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

Sonraki adımlar

Sorununuzu görmediyseniz veya sorununuzu çözemiyorsanız daha fazla destek için aşağıdaki kanallardan birini ziyaret edin: